利用七牛云私有空间存储文件
第一步,注册七牛云,创建空间,将空间设为私有
需要记下的东西:
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添加方法
-
function Qiniu_Encode($str) // URLSafeBase64Encode
-
{
-
$find = array('+', '/');
-
$replace = array('-', '_');
-
return str_replace($find, $replace, base64_encode($str));
-
}
-
function Qiniu_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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)