thinkphp5呼叫七牛雲SDK上傳檔案
阿新 • • 發佈:2019-01-07
1.先在verdor裡新建一個資料夾: Qiniu
2.將SDK壓縮包中的檔案全部解壓到Qiniu資料夾中
3.在Controller中,引用類
vendor('Qiniu.autoload');
use Qiniu\Auth as Auth;
use Qiniu\Storage\BucketManager;
use Qiniu\Storage\UploadManager;
- 1
- 2
- 3
- 4
4.在config.php中新增配置
'ACCESSKEY' => '',//你的accessKey
'SECRETKEY' => '',//你的secretKey
'BUCKET' => '',//上傳的空間
'DOMAIN' =>'',//空間繫結的域名
- 1
- 2
- 3
- 4
5.上傳操作的函式
$file = request()->file('image');
// 要上傳圖片的本地路徑
$filePath = $file->getRealPath();
$ext = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION); //字尾
//獲取當前控制器名稱
$controllerName = 'index';
// 上傳到七牛後儲存的檔名
$key =substr(md5($file->getRealPath()) , 0, 5). date('YmdHis') . rand(0 , 9999) . '.' . $ext;
// 需要填寫你的 Access Key 和 Secret Key
$accessKey = config('ACCESSKEY');
$secretKey = config('SECRETKEY');
// 構建鑑權物件
$auth = new Auth($accessKey, $secretKey);
// 要上傳的空間
$bucket = config('BUCKET');
$domain = config('DOMAINImage');
$token = $auth->uploadToken($bucket);
// 初始化 UploadManager 物件並進行檔案的上傳
$uploadMgr = new UploadManager();
// 呼叫 UploadManager 的 putFile 方法進行檔案的上傳
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
if ($err !== null) {
echo ["err"=>1,"msg"=>$err,"data"=>""];
} else {
//返回圖片的完整URL
var_dump($ret);
}