ThinkPHP5 上传文件到七牛云对象存储

1、准备工作

注册七牛云账号,可以有免费的10G储存空间。
到 个人中心-密钥管理 查看 AccessKey 和 SecretKey。

2、SDK 下载

命令行进入到项目根目录,使用 composer 下载文件。
下载成功会在 vendor 目录下多出一个 qiniu 目录。

composer require qiniu/php-sdk
3、控制器代码
<?php
namespace app\admin\controller;

vendor('../../../vendor/qiniu/php-sdk/autoload.php');
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;

class Test
{
    private $accessKey =""; // 你的 AccessKey
    private $secretKey = ""; // 你的 SecretKey
    private $bucket = ""; // 你在七牛云创建的空间名称

    // 图片上传七牛云
    public function uploadToQiniu()
    {
        if (request()->isPost()) {
            $file = $_FILES['file'];
            // 截取后缀名
            $ext = strchr($file['name'], '.');
            // 构建鉴权对象
            $auth = new Auth($this->accessKey, $this->secretKey);
            // 生成上传 Token
            $token = $auth->uploadToken($this->bucket);
            // 要上传文件的本地路径
            $filePath = $file['tmp_name'];
            // 上传到七牛后保存的文件名
            $key = time().uniqid().$ext;
            // 初始化 UploadManager 对象并进行文件的上传。
            $uploadMgr = new UploadManager();
            // 调用 UploadManager 的 putFile 方法进行文件的上传。
            list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
            if ($err !== null) {
                return $err; // 失败
            } else {
                return $key; // 成功,$key 就是在七牛云的文件名,加上你在七牛云的外链地址就可以访问到文件
            }
        }
        return view();
    }
}
4、登录七牛云查看文件

七牛云文件管理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章