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、登錄七牛雲查看文件

七牛雲文件管理

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