thinkphp 中 使用七牛云上传(来自thinkphp官网)

利用七牛云私有空间存储文件
第一步,注册七牛云,创建空间,将空间设为私有
需要记下的东西:
AK,SK,bucket
第二步配置ThinkPHP
在config.php添加
  1. 'UPLOAD_SITEIMG_QINIU' => array ( 
  2.                 'maxSize' => 5 * 1024 * 1024,//文件大小
  3.                 'rootPath' => './',
  4.                 'saveName' => array ('uniqid', ''),
  5.                 'driver' => 'Qiniu',
  6.                 'driverConfig' => array (
  7.                         'secrectKey' => '<这里填七牛SK>', 
  8.                         'accessKey' => '<这里填七牛AK>',
  9.                         'domain' => '<空间名称>.qiniudn.com',
  10.                         'bucket' => '<空间名称>', 
  11.             )
复制代码
第三步,上传文件
控制器
  1. $setting=C('UPLOAD_SITEIMG_QINIU');
  2. $Upload = new \Think\Upload($setting);
  3. $info = $Upload->upload($_FILES);
复制代码
上传文件后得到的$info是这样的
  1.  array(1) {
  2.   ["photo"] => array(10) {
  3.     ["name"] =>
  4.     ["type"] =>
  5.     ["size"] =>
  6.     ["key"] =>"
  7.     ["ext"] =>
  8.     ["sha1"] => 
  9.     ["savename"] => 
  10.     ["savepath"] => 
  11.     ["url"] => 
  12.   }
  13. }
复制代码
第四步,计算下载凭证
Common目录function.php添加方法
  1. function Qiniu_Encode($str) // URLSafeBase64Encode
  2. {
  3.     $find = array('+', '/');
  4.     $replace = array('-', '_');
  5.     return str_replace($find, $replace, base64_encode($str));
  6. }
  7. function Qiniu_Sign($url) {//$info里面的url
  8.     $setting = C ( 'UPLOAD_SITEIMG_QINIU' );
  9.     $duetime = NOW_TIME + 86400;//下载凭证有效时间
  10.     $DownloadUrl = $url . '?e=' . $duetime;
  11.     $Sign = hash_hmac ( 'sha1', $DownloadUrl, $setting ["driverConfig"] ["secrectKey"], true );
  12.     $EncodedSign = Qiniu_Encode ( $Sign );
  13.     $Token = $setting ["driverConfig"] ["accessKey"] . ':' . $EncodedSign;
  14.     $RealDownloadUrl = $DownloadUrl . '&token=' . $Token;
  15.     return $RealDownloadUrl;
  16. }
复制代码
$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官网))