您现在的位置是:自如初>LaravelLaravel

Laravel6.x上传图片到七牛云

小白 2021-02-10 17:12:49 Laravel 76人已围观

简介Laravel6.x如何上传图片至七牛云?使用外部存储来存储图片等资源有这样几处优势:利于网站维护、缓解服务器压力。

Laravel6.x如何上传图片至七牛云?使用外部存储来存储图片等资源有这样几处优势:利于网站维护、缓解服务器压力。

在使用七牛云来存储之前,需要做如下准备工作:

注册七牛账号;

购买对象存储资源;

创建公共空间。我这里没有使用测试域名,而使用通过备案的域名进行绑定,也就是绑定真实域名。


准备工作完成之前下面开始使用代码工作。

第一步:下载安装包

composer require zgldh/qiniu-laravel-storage

我这里使用了一个第三方包,此包是在官方SDK基础上进行了封装,若需要快速开发,使用扩展包更为方便快速,这个过程中,几乎感受到不是上传到了七牛云。当然了,也可以直接使用官方SDK。

第二步:配置服务

文件配置:config/app.php文件中的providers数组中添加如下配置:

zgldh\QiniuStorage\QiniuFilesystemServiceProvider::class

第三步:配置驱动

文件位置:config/filesystems.php

    'disks' => [
       /**
       * 此处省略自带的配置
       **/
       
       'qiniu' => [
           'driver'  => 'qiniu',
           'domains' => [
               'default'   => 'test.com',      //绑定的真实域名,当然了,我写出的是假的
               'https'     => 'test.com',         //你的HTTPS域名
               'custom'    => '可不填',                //Useless 没啥用,请直接使用上面的 default 项
            ],
           'access_key'=> '**********',      //AccessKey
           'secret_key'=> '*********',      //SecretKey
           'bucket'    => '对象存储空间名',        //Bucket名字
           'notify_url'=> '使用简单的图片上传,可不填',  //持久化处理回调地址
           'access'    => 'public',  //空间访问控制 public 或 private
           'hotlink_prevention_key' => '可不填', // CDN 时间戳防盗链的 key。 设置为 null 则不启用本功能。
       ],
   ],

关于如何操作,都有着详细的方法介绍,这是参考地址 https://packagist.org/packages/zgldh/qiniu-laravel-storage

第步四:路由与方法

路由

Route::post('uploader/qiniu','Admin\UploaderController@qiNiuUpload');

方法

   public function qiNiuUpload(Request $request)
   {
       if ($request->hasFile('file')) {
           $filename = sha1(time().$request->file('file')->getClientOriginalName()) . '.' . $request->file('file')->getClientOriginalExtension();
           Storage::disk('qiniu')->put($filename,file_get_contents($request->file('file')->path()));
           // 七牛文件路径
           // 这一代码就是上传到七牛云的关键代码,其中调用了依赖包封装的方法
           $filePath = Storage::disk('qiniu')->getDriver()->downloadUrl($filename);

           $result = [
               'code'   =>  200,
               'succMsg'   =>  '上传成功',
               'urlpath'   =>  $filePath
           ];

       return response()->json($result);
   }

我是仲夏


很赞哦!(1)

文章评论

登录 注册

自如初--时间轴

站名:自如初

独白:向前走!向前走!

邮箱:457969743@qq.com

站点信息