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);
    }
2021-02-10
请登录后再评论