當前位置: 首頁> 最新文章列表> ThinkPHP6集成七牛雲存儲實現文件上傳教程

ThinkPHP6集成七牛雲存儲實現文件上傳教程

gitbox 2025-06-27

引入七牛雲存儲SDK

在ThinkPHP6中集成七牛雲存儲的第一步是引入七牛官方提供的PHP SDK。您可以在composer.json文件中添加如下依賴:

 
"require": {
    "qiniu/php-sdk": "^7.3"
}

添加完成後執行以下命令更新依賴:

 
composer update

配置七牛雲存儲信息

接下來需要在ThinkPHP6 的config目錄下創建一個名為qiniu.php的配置文件,用於存放七牛雲的賬戶信息與相關配置:

 
return [
    'accessKey' => 'your-access-key',
    'secretKey' => 'your-secret-key',
    'bucket'    => 'your-bucket',
    // 其他配置項...
];

編寫控制器實現文件上傳

在控制器中,我們可以利用七牛提供的UploadManagerAuth類來完成文件上傳操作。以下是一個上傳文件的示例代碼:

 
use Qiniu\Storage\UploadManager;
use Qiniu\Auth;

class QiniuController extends Controller
{
    public function upload()
    {
        $file = $_FILES['file']['tmp_name'];

        $accessKey = config('qiniu.accessKey');
        $secretKey = config('qiniu.secretKey');
        $auth = new Auth($accessKey, $secretKey);
        $token = $auth->uploadToken(config('qiniu.bucket'));

        $uploadMgr = new UploadManager();
        $key = null; // 自動生成文件名
        list($ret, $err) = $uploadMgr->putFile($token, $key, $file);

        if ($err !== null) {
            echo '上傳失敗';
        } else {
            echo '上傳成功';
        }
    }
}

視圖中創建上傳表單

為了讓用戶在前端頁面選擇文件並進行上傳,可以在視圖中加入一個基本的上傳表單:

 
<form action="/qiniu/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <button type="submit">上傳文件</button>
</form>

該表單通過POST 請求將文件發送至控制器處理,實現前後端的文件上傳功能。

總結

本文介紹了在ThinkPHP6 中集成七牛雲存儲的完整流程,包括SDK 引入、配置文件編寫、上傳邏輯實現以及前端表單設計。通過使用七牛雲存儲,開發者可以輕鬆實現文件的雲端管理和訪問,提升應用的可靠性和用戶體驗。