thinkphp 中 使用七牛云上传

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 

以上是关于thinkphp 中 使用七牛云上传的主要内容,如果未能解决你的问题,请参考以下文章

如何上传图片到七牛云

thinkphp 七牛云配置

Tp3如何实现本地视频文件上传到七牛云

如何自动上传文件到七牛云

Thinkphp使用PCLZIP 如何打包远程文件

七牛云上传工具