利用七牛云私有空间存储文件
第一步,注册七牛云,创建空间,将空间设为私有
需要记下的东西:
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
时间: 2024-10-12 15:59:13