thinkphp 中 使用七牛雲上傳

利用七牛雲私有空間存儲文件

第一步,註冊七牛雲,建立空間,將空間設爲私有

須要記下的東西:

AK,SK,bucket

第二步配置ThinkPHP

在config.php添加 php

'UPLOAD_SITEIMG_QINIU'=>array(
'maxSize'=>5*1024*1024,//文件大小
'rootPath'=>'./',
'saveName'=>array('uniqid',''),
'driver'=>'Qiniu',
'driverConfig'=>array(
'secrectKey'=>'<這裏填七牛SK>',
'accessKey'=>'<這裏填七牛AK>',
'domain'=>'<空間名稱>.qiniudn.com',
'bucket'=>'<空間名稱>',
)

  

 

 

複製代碼


第三步,上傳文件

控制器 html

$setting=C('UPLOAD_SITEIMG_QINIU');
$Upload=new\Think\Upload($setting);
$info=$Upload->upload($_FILES);

  

 

 

複製代碼


上傳文件後獲得的$info是這樣的 thinkphp

array(1){
["photo"]=>array(10){
["name"]=>
["type"]=>
["size"]=>
["key"]=>"
["ext"]=>
["sha1"]=>
["savename"]=>
["savepath"]=>
["url"]=>
}
}

  

 

 

複製代碼


第四步,計算下載憑證

Common目錄function.php添加方法 api

functionQiniu_Encode($str)//URLSafeBase64Encode
{
$find=array('+','/');
$replace=array('-','_');
returnstr_replace($find,$replace,base64_encode($str));
}
functionQiniu_Sign($url){//$info裏面的url
$setting=C('UPLOAD_SITEIMG_QINIU');
$duetime=NOW_TIME+86400;//下載憑證有效時間
$DownloadUrl=$url.'?e='.$duetime;
$Sign=hash_hmac('sha1',$DownloadUrl,$setting["driverConfig"]["secrectKey"],true);
$EncodedSign=Qiniu_Encode($Sign);
$Token=$setting["driverConfig"]["accessKey"].':'.$EncodedSign;
$RealDownloadUrl=$DownloadUrl.'&token='.$Token;
return$RealDownloadUrl;
}

  

 

 

複製代碼


$RealDownloadUrl爲下載對應私有資源的可用URL

參考

http://document.thinkphp.cn/manual_3_2.html#upload

http://developer.qiniu.com/docs/v6/api/reference/security/download-token.html dom

相關文章
相關標籤/搜索