thinkphp 中 使用七牛雲上傳


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

第一步,注冊七牛雲,創建空間,將空間設為私有

需要記下的東西:

AK,SK,bucket

第二步配置ThinkPHP

在config.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'=>'<空間名稱>',
)

  

 

 

復制代碼


第三步,上傳文件

控制器 

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

  

 

 

復制代碼


上傳文件后得到的$info是這樣的 

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

  

 

 

復制代碼


第四步,計算下載憑證

Common目錄function.php添加方法 

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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM