ThinkPHP6七牛云配置设置
发布时间:2022-06-09, 15:17:36 分类:PHP | 编辑 off 网址 | 辅助
图集1/1
正文 1685字数 393,973阅读
composer安装七牛云官方sdk包
composer require qiniu/php-sdk
Run code
Cut to clipboard
安装成功后我们就能在项目根目录看到七牛云的包,在vendor下可以看到七牛云的包,官方还为我们写好了案例,大家可以参考里面的写法
修改.env文件,QINIU_ACCESS_KEY和QINIU_SECRET_KEY
APP_DEBUG = true
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = blog
USERNAME = root
PASSWORD = root
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true
[LANG]
default_lang = zh-cn
[QINIU]
QINIU_ACCESS_KEY = xxxxxx改为你的
QINIU_SECRET_KEY = xxxxxx改为你的
QINIU_BUCKET = xxxxxx改为你的
QINIU_DOMAIN = xxxxxx改为你的
Run code
Cut to clipboard
在app\common下新建一个公共七牛云文件上传类
<?php
namespace app\common;
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
use think\facade\Env;
class Qiniu
{
public static function upload($filePath,$filename){
$filename=str_replace('\\','/',$filename);//替换\斜杠
// 需要填写你的 Access Key 和 Secret Key
$accessKey=Env::get('qiniu.qiniu_access_key');
$secretKey=Env::get('qiniu.qiniu_secret_key');
$bucket=Env::get('qiniu.qiniu_bucket');
$domain=Env::get('qiniu.qiniu_domain');
// 构建鉴权对象
$auth = new Auth($accessKey, $secretKey);
// 生成上传 Token
$token = $auth->uploadToken($bucket);
// 初始化 UploadManager 对象并进行文件的上传。
$uploadMgr = new UploadManager();
// 调用 UploadManager 的 putFile 方法进行文件的上传。
$res = $uploadMgr->putFile($token, $filename, $filePath);
if($res[1]==null){ //上传成功
return $domain.$filename;
}else{//上传失败
return '';
}
}
}
Run code
Cut to clipboard
使用
$url=Qiniu::upload($filePath,$filename);
Run code
Cut to clipboard
(支付宝)给作者钱财以资鼓励 (微信)→
有过 1 条评论 »
// app/config/qiniu.php return [ 'ak' => '********************', // id 'sk' => '********************', // 秘钥 'bucket'=> '******', // 要上传的空间 'image_url' => '*************', // 空间域名 ];
创建上传到七牛的图片上传类
// app/common/lib/QiUpload.php <?php namespace app\common\lib; use think\facade\Config; use Qiniu\Auth; use Qiniu\Storage\UploadManager; /** * Class QiUpload 图片上传至七牛云 */ class QiUpload { /** * 上传图片 * @param $request */ public static function qiUpload($request) { // 获取上传图片信息 $file = $request->file('file'); // 图片存储在本地的临时路经 $filePath = $file->getRealPath(); // 获取图片后缀 $ext = $file->getOriginalExtension(); // 上传到七牛后保存的新图片名 $newImageName = date('Y') . '/' . date('m') .'/' . substr(md5($file->getOriginalName()),0,6) . date('YmdHis') . rand(00000,99999) . '.'.$ext; // 说明:为了方便阅读,上一行代码进行的回车,如果你的遇到了问题,请放到一行 // 构建鉴权对象 $auth = new Auth(Config::get('qiniu.ak') , Config::get('qiniu.sk')); // 要上传的空间位置 $token = $auth->uploadToken(Config::get('qiniu.bucket')); // 初始化 UploadManager 对象并进行文件的上传。 $uploadMgr = new UploadManager(); list($ret , $err) = $uploadMgr->putFile($token , $newImageName , $filePath); if($err !== null){ return null; }else{ // 图片上传成功 return $newImageName; } } }
后台控制器使用
// app/admin/controller/Test.php <?php namespace app\admin\controller; use think\facade\Config; use think\facade\View; use think\Request; use app\common\lib\QiUpload; class Test { public function index() { return View::fetch(); } public function add() { return View::fetch('add'); } // 图片上传 public function upload(Request $request) { if($request->isPost()){ $img = QiUpload::qiUpload($request); if($img){ // 图片完整绝对路经 $imgUrl = Config::get('qiniu.image_url') . '/' . $img; $data = [ 'status' => 1, 'msg' => '上传成功', 'img_url' => $imgUrl, ]; return json($data); }else{ return json(['status'=>0,'msg'=>'上传失败']); } } } }