当前位置: 首页> 最新文章列表> 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 引入、配置文件编写、上传逻辑实现以及前端表单设计。通过使用七牛云存储,开发者可以轻松实现文件的云端管理和访问,提升应用的可靠性和用户体验。