Don't forget that you have had a dream

    

thinkPHP5.0 + 七牛云存储

博客已经上线了好几个月了,文章中用到不少图片,着实占了不少服务器空间,听说七牛云能免费使用十个G空间,就找找了方法配置了下,在此分享下

thinkPHP配置

在你已经注册好的七牛云账号中 找到你的 AccessKey和SecretKey,在你的对象存储中,找到你的存储空间名称和空间域名

https://file.whongbin.com/blog/img20190430152101.png

配置如下

// 文件路径:rootpath/application/config.php
'qiniu' => [
        'accesskey' => '你的AK,
        'secretkey' => '你的SK',
        'bucket' => 'whongbin-cn',//上传空间名称
        'DOMAIN'=>'你的绑定域名,上图中标出的两个都可以'
    ]

下载七牛SDK

在项目根目录中执行添加七牛云SDK

//是根目录,不是访问目录
composer require qiniu/php-sdk

在公共方法文件中写使用函数

//确保已在项目中引入了七牛云SDK
//引入七牛云的相关文件
use Qiniu\Auth as Auth;
use Qiniu\Storage\BucketManager;
use Qiniu\Storage\UploadManager;

if (!function_exists('qiniu_upload')) {
    /**
     * 上传文件到七牛云
     * @Author   wanghongbin
     * @Email    wanghongbin@ngoos.org
     * @DateTime 2018-09-06
     * @param    [type]                $file [description]
     * @return   [type]                      [description]
     */
    function qiniu_upload($file=null){
        if (!$file) {
            $file = request()->file('file');
        }
        // 要上传图片的本地路径
        $filePath = $file->getRealPath();
        $ext = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION);  //后缀
        // 上传到七牛后保存的文件名
        $key =substr(md5($file->getRealPath()) , 0, 5). date('YmdHis') . rand(0, 9999) . '.' . $ext;
        // 需要填写你的 Access Key 和 Secret Key
        $qiniu = config('qiniu');
        $accessKey = $qiniu['accesskey'];
        $secretKey = $qiniu['secretkey'];
        // 要上传的空间
        $bucket = $qiniu['bucket'];
        $domain = $qiniu['DOMAIN'];
        // 构建鉴权对象
        $auth = new Auth($accessKey, $secretKey);
        $token = $auth->uploadToken($bucket);
        // 初始化 UploadManager 对象并进行文件的上传
        $uploadMgr = new UploadManager();
        // 调用 UploadManager 的 putFile 方法进行文件的上传
        list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
        if ($err !== null) {
            return ["err"=>0,"msg"=>$err,"data"=>""];
        } else {
            //返回图片的完整URL
            return ["err"=>1,"msg"=>"上传完成","data"=>($domain . $ret['key'])];
        }
    }
}

在控制器中调用

// 收取文件
$file = request()->file('cover');
if ($file) {
    // 存储在七牛云
    $info = qiniu_upload($file);
    $data['cover'] = $info['data'];
}

结语

OK,以上就是在thinkphp5.0中使用七牛云对象存储的全部内容了

您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!
所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 知识共享许可协议 进行许可。

评论已关闭

  更新日志

博客banner下方滚动文字替换为使用 一言API 随机获取 --- updated on 2019-05-22 09:04:31 星期三

  关于博主

三里林,一个致力于分享,分享心得,分享技术,分享知识点的个人博客

  近期评论

  分类目录

变化是唯一可称为客观的,普遍的事实。

我们是如此的担心着未来会发生的事情,因此忘记了慢下来享受现在。

喝他喝过的酒,受他受过的伤,种他种过的思追,养他喜欢的兔子,看他看过的小黄书,画他画过的妆。

记性太好,有时候是一种负担。容易忘记往事的人,是幸福的。

不怕念起,唯恐觉迟,既已执手,此生不负。

我们不能成为贵族的后代,但我们可以变成贵族的祖先

我恨自己。我爱自己。

有些人坐飞机就能见到,有些人坐时光机才可以。