在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',
// 其他配置项...
];
在控制器中,我们可以利用七牛提供的 UploadManager 和 Auth 类来完成文件上传操作。以下是一个上传文件的示例代码:
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 引入、配置文件编写、上传逻辑实现以及前端表单设计。通过使用七牛云存储,开发者可以轻松实现文件的云端管理和访问,提升应用的可靠性和用户体验。