利用七牛云私有空间存储文件
第一步,注册七牛云,创建空间,将空间设为私有
需要记下的东西:
AK,SK,bucket
第二步配置ThinkPHP
在config.php添加
控制器
Common目录function.php添加方法
参考
http://document.thinkphp.cn/manual_3_2.html#upload
http://developer.qiniu.com/docs/v6/api/reference/security/download-token.html
第一步,注册七牛云,创建空间,将空间设为私有
需要记下的东西:
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