3.2版七牛云存储文件

jerry thinkphp 2015年11月19日 收藏
利用七牛云私有空间存储文件
第一步,注册七牛云,创建空间,将空间设为私有
需要记下的东西:
AK,SK,bucket
第二步配置ThinkPHP
在config.php添加
  1. 'UPLOAD_SITEIMG_QINIU' => array ( 
                    'maxSize' => 5 * 1024 * 1024,//文件大小
                    'rootPath' => './',
                    'saveName' => array ('uniqid', ''),
                    'driver' => 'Qiniu',
                    'driverConfig' => array (
                            'secrectKey' => '<这里填七牛SK>', 
                            'accessKey' => '<这里填七牛AK>',
                            'domain' => '<空间名称>.qiniudn.com',
                            'bucket' => '<空间名称>', 
                )
第三步,上传文件
控制器
  1. $setting=C('UPLOAD_SITEIMG_QINIU');
    $Upload = new \Think\Upload($setting);
    $info = $Upload->upload($_FILES);
上传文件后得到的$info是这样的
  1.  array(1) {
      ["photo"] => array(10) {
        ["name"] =>
        ["type"] =>
        ["size"] =>
        ["key"] =>"
        ["ext"] =>
        ["sha1"] => 
        ["savename"] => 
        ["savepath"] => 
        ["url"] => 
      }
    }
第四步,计算下载凭证
Common目录function.php添加方法
  1. 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