1. 程式人生 > >Thinkphp5上傳檔案至七牛雲

Thinkphp5上傳檔案至七牛雲

1.下載七牛雲的介面檔案

使用tp去上傳檔案至七牛雲,首先需要使用七牛雲提供的php的sdk ,有兩種方式

1.直接去七牛雲的官網下載
傳送門 https://developer.qiniu.com/kodo/sdk/1241/php

2.下載composer,使用這個包管理工具進行下載(推薦)
這個比較簡單,先去官網下載安裝包即可 ,傳送門
https://getcomposer.org/download/
安裝網上教程很多坑,按照這個大神的就ok了 傳送門 https://www.1949idc.com/shownews580.html
安裝完畢後就可以一行命令安裝了七牛雲的sdk


官網傳送門如下 http://www.thinkphp.cn/topic/57473.html

2.去七牛雲去配置相關儲存空間

傳送門 https://jingyan.baidu.com/article/0bc808fc267b8f1bd485b93b.html

注意,你要得到4個引數才能使用php去連結七牛雲的伺服器

AccessKey / SecretKey
這兩個去 個人面板>金鑰管理中可以找到
bucket
就是你新建的儲存空間的名字
domain
就是你最後生成的公網地址的字首,就是你的外鏈預設域名

坑坑坑
重要的事情說三遍,這裡有個大坑,因為你的七牛雲可能會有兩套金鑰,一定要兩套金鑰都試一遍!!!

3.在控制器內引用依賴檔案

require_once APP_PATH . ‘…/vendor/qiniu/php-sdk/autoload.php’;
use Qiniu\Auth;
use Qiniu\Storage\BucketManager;
use Qiniu\Storage\UploadManager;
use Qiniu;

4.編寫檔案上傳程式碼

public function up_load($file)
{
//接受參 數
$filePath = $file->getRealPath();
e

x t = p a t h i n f o ( ext = pathinfo( file->getInfo(‘name’), PATHINFO_EXTENSION);
//獲取當前控制器名稱
$controllerName = ‘index’;
// 上傳到七牛後儲存的檔名
k e y = d a t e ( Y m d ) . / . s u b s t r ( m d 5 ( key =date('Ymd') .'/'.substr(md5( file->getRealPath()) , 0, 5). rand(0, 9999) . ‘.’ . $ext;
// 需要填寫你的 Access Key 和 Secret Key
$accessKey = ‘你的ac’;
$secretKey = ‘你的sc’;
// 構建鑑權物件
a u t h = n e w A u t h ( auth = new Auth( accessKey, $secretKey);
// 要上傳的空間
$bucket = '你的’物件儲存空間名;
$domain = ‘你的預設連結地址’;
$token = a u t h > u p l o a d T o k e n ( auth->uploadToken( bucket);
// 初始化 UploadManager 物件並進行檔案的上傳
u p l o a d M g r = n e w U p l o a d M a n a g e r ( ) ; / / 調 U p l o a d M a n a g e r p u t F i l e l i s t ( uploadMgr = new UploadManager(); // 呼叫 UploadManager 的 putFile 方法進行檔案的上傳 list( ret, $err) = u p l o a d M g r > p u t F i l e ( uploadMgr->putFile( token, $key, f i l e P a t h ) ; i f ( filePath); if ( err !== null) {
return false;
} else {
//返回圖片的完整URL
r e t [ k e y ] = s t r r e p l a c e ( , / , ret['key'] = str_replace('\\','/', ret[‘key’]);
return $ret[‘key’];
}
}