利用七牛雲私有空間存儲文件
第一步,註冊七牛雲,建立空間,將空間設爲私有
須要記下的東西:
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