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
请登录后再评论