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

七牛云文件管理

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
ThinkPHP6 中,您可以使用多种方式来存储文件,下面是其中常见的几种方式: 1. 本地存储 在本地服务器存储文件是最常见的方式之一。您可以在控制器中使用 `move()` 方法将文件移动到您指定的目录中,例如: ```php public function upload() { // 获取上文件 $file = $this->request->file('image'); // 移动文件到指定目录 $info = $file->move('uploads'); // 输出文件路径 if ($info) { echo $info->getSaveName(); } else { echo $file->getError(); } } ``` 在上面的代码中,我们使用 `move()` 方法将上文件移动到 `uploads` 目录中,并输出文件路径。如果文件成功,`$info` 将返回一个 `SplFileInfo` 对象,您可以使用它来获取文件的详细信息,例如文件名、文件大小等。 2. 阿里云 OSS 存储 如果您使用阿里云的云服务器,可以使用阿里云对象存储服务(OSS)来存储文件。只需要在配置文件(`config/filesystem.php`)中添加以下内容: ```php 'oss' => [ 'type' => 'oss', 'access_id' => 'your-access-id', 'access_key' => 'your-access-key', 'bucket' => 'your-bucket-name', 'endpoint' => 'your-endpoint', 'url' => 'your-url', ], ``` 然后,在控制器中使用 `put()` 方法将文件到 OSS,例如: ```php public function upload() { // 获取上文件 $file = $this->request->file('image'); // 上文件到 OSS $filename = $this->filesystem->disk('oss')->put('uploads', $file); // 输出文件路径 echo $this->filesystem->disk('oss')->url($filename); } ``` 在上面的代码中,我们使用 `put()` 方法将文件到 OSS,并使用 `url()` 方法获取文件的 URL。如果您上文件很大,可以使用 `putFile()` 方法上分块文件,以提高上速度和稳定性。 3. 其他云存储 除了阿里云 OSS,您还可以使用七牛云存储、腾讯云 COS 等其他云存储服务来存储文件。只需要在配置文件中添加相应的配置,然后在控制器中使用相应的方法即可。例如,使用七牛云存储: ```php 'qiniu' => [ 'type' => 'qiniu', 'access_key' => 'your-access-key', 'secret_key' => 'your-secret-key', 'bucket' => 'your-bucket-name', 'domain' => 'your-domain', ], ``` ```php public function upload() { // 获取上文件 $file = $this->request->file('image'); // 上文件到七牛云 $filename = $this->filesystem->disk('qiniu')->put('uploads', $file); // 输出文件路径 echo $this->filesystem->disk('qiniu')->url($filename); } ``` 以上是几种常见的文件存储方式,您可以根据需要选择适合自己的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

相逢不晚何必匆匆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值