Hyperf 初体验之文件系统-七牛云上传

Hyperf 这款优秀的框架功能越来越完善,上周发布的 文件系统组件可谓是很赞。版本为 v1.1.22

所以今天我们就使用七牛云来测试下文件系统组件

首先安装组件

composer require hyperf/filesystem

因为我们使用七牛云上传,所以需要安装 overtrue/flysystem-qiniu 适配器

composer require overtrue/flysystem-qiniu

最后发布配置文件

php bin/hyperf.php vendor:publish hyperf/filesystem

OK,接下来我们到 七牛云 控制台 获取 AK、SK,以及创建空间

AK、SK 在个人中心-》秘钥管理下 file

打开 对象存储,创建空间

file

基于以上配置我们需要的准备工作就做好了。接下来配置一些参数

打开 .env 文件

QINIU_ACCESS_KEY=
QINIU_SECRET_KEY=
QINIU_BUCKET=
QINBIU_DOMAIN=

其中 QINIU_ACCESS_KEYQINIU_SECRET_KEY 就是 个人中心-》秘钥管理下的 秘钥 QINIU_BUCKET 就是创建的 空间名称 ,比如我这里为 hedeqiangQINBIU_DOMAIN 为空间域名

file

所有信息全部准备好了, 接下来就是编码工作了。

ok,我们在控制器中测试下

public function index(\League\Flysystem\Filesystem $filesystem)
{
    $filesystem->write('posts/20200404/file.txt', 'contents');
}

然而我们并没有上传到 七牛云,其实默认 的 storagelocal ,也就是本地,我们打开 file.php 就可以明白。

'default' => 'local',
    'storage' => [
        'local' => [
            'driver' => \Hyperf\Filesystem\Adapter\LocalAdapterFactory::class,
            'root' => __DIR__ . '/../../runtime',
        ],

上传到 runtime 文件夹下了。

那么该怎样上传到七牛云呢?一种方法就是 改变 defaultqiniu

另一种方法就是注入 Hyperf\Filesystem\FilesystemFactory 来动态选择使用哪种驱动。

class IndexController extends AbstractController
{
    public function index(\Hyperf\Filesystem\FilesystemFactory $factory)
    {
        $qiniu = $factory->get('qiniu');

        $qiniu->write('posts/20200404/file.txt', 'contents');
    }
}

我们是将一段文本保存为 txt 文件,那么我们该怎样上传文件呢?比如上传图片,表单上传图片

class IndexController extends AbstractController
{
    public function index(\Hyperf\Filesystem\FilesystemFactory $factory)
    {
        $qiniu = $factory->get('qiniu');

        $file = $this->request->file('file');

        $extension = strtolower($file->getExtension()) ?: 'png';

        $filename = time() . '_' . Str::random(10) . '.' . $extension;

        var_dump($qiniu->put($filename,file_get_contents($file->getRealPath())));

    }
}

以下是 Postman 请求上传图片 file

以上就是 Hyperf 的文件系统组件,更多用法 请参考 官方文档 文件系统

关于极客返利

极客返利 是由我个人开发的一款网课返利、返现平台。包含 极客时间返现、拉勾教育返现、掘金小册返现、GitChat返现。目前仅包含这几个平台。后续如果有需要可以考虑其他平台。 简而言之就是:你买课,我返现。让你花更少的钱,就可以买到课程。

https://geek.laravelcode.cn

https://geek.idaka.ink

版权许可
本作品采用 知识共享署名 4.0 国际许可协议 进行许可。

转载无需与我联系,但须注明出处,注明文章来源 Hyperf 初体验之文件系统-七牛云上传

联系我
编程怪事
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值