感覺ThinkPHP對第三方的sdk的支持不是特別友好,這次使用七牛雲sdk時就是這個問題,雖然ThinkPHP有自帶的七牛上傳驅動,但是肯定不如七牛自己更新的sdk好,畢竟是很久之前的版本了。
想使用ThinkPHP自帶的七牛雲可以參考我的另外一篇文章:http://www.thinkphp.cn/topic/46397.html
下面說一下如何整合新版七牛雲sdk
第一步,註冊七牛雲,創建空間,下載sdk這些就不說了
第二步,修改七牛雲sdk文件的命名格式和sdk文件裏面的命名空間
這裏有一個小問題還望高手給予指點
因爲七牛雲sdk也使用了命名空間,但是文件命名不符合ThinkPHP的規範,這種情況該放到哪裏呢?
目前我有兩種做法
一種是直接放到項目的Application目錄下,這樣可以直接修改文件命名就好,不用修改sdk文件裏面的命名空間
另外一種是放到項目的Application\Tool目錄下(所有的第三方類都放到這個目錄下),不過這樣的缺點就是修改七牛雲sdk文件的命名格式和sdk文件裏面的命名空間(吐槽一下,還好七牛雲sdk文件不算太多,不然一個個修改也是一個大工程,如果有高手有更好的方法歡迎指點)
第三步,調用sdk
分爲兩種調用方法,請大家自行選擇
//use \Qiniu\Auth;
//use \Qiniu\Storage\UploadManager;
use \Tool\Qiniu\Auth;
use \Tool\Qiniu\Storage\UploadManager;
public function uploadQiNiu(){
//import('Qiniu.functions');
import('Tool.Qiniu.functions');
// 用於簽名的公鑰和私鑰
$accessKey = '**';
$secretKey = '**';
// 初始化籤權對象
$auth = new Auth($accessKey, $secretKey);
// 空間名 https://developer.qiniu.io/kodo/manual/concepts
$bucket = 'bucket-name';
// 生成上傳Token
$token = $auth->uploadToken($bucket);
echo $token;exit;
// 構建 UploadManager 對象
$uploadMgr = new UploadManager();
// 上傳文件到七牛
$filePath = './php-logo.png';
$key = 'php-logo.png';
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}
}
http://download.csdn.net/detail/baikeliang/9766595
裏面共享我已經修改好的sdk文件,版本Release v7.1.3