1、安装配置
composer require zgldh/qiniu-laravel-storage
在 config下的app.php 加上
zgldh\QiniuStorage\QiniuFilesystemServiceProvider::class
接着
接下来在config/filesystems.php
里的disks
中新增如下选项:
'disks' => [ ... , 'qiniu' => [ 'driver' => 'qiniu', 'domains' => [ 'default' => 'laravelacademy.com1.z0.glb.clouddn.com', //你的七牛域名 'https' => 'dn-laravelacademy.qbox.me', //你的HTTPS域名 'custom' => 'static.laravelacademy.org', //你的自定义域名 ], 'access_key'=> '', //AccessKey 'secret_key'=> '', //SecretKey 'bucket' => '', //Bucket名字 'notify_url'=> '', //持久化处理回调地址 ], ],
然后
实例:
$disk = \Storage::disk('qiniu'); //使用七牛云上传
$time = date('Y/m/d/H-m-s');
$file = $Request->file('file');
$filePath = $file->getRealPath();
$ext = $file->getClientOriginalExtension();
$filename = $disk->put($time.'.'.$ext, file_get_contents($filePath));//上传
if(!$filename) {
return redirect()->route('center.updinfo')
->with('success', '文件错误');
}
就是如此简单
实现过程中的坑
实现上传图片时,我们要传一个参数
文件路径
路径后面必须带文件扩展名,不然七牛云无法识别文件类型,进而文件上传成功后,文件也无法展示
文件上传总结
第一总报错
php.ini 的扩展
可能是没设置临时文件路径
可能图片太大,等等扩展性问题
第二种
权限问题
父级只有读取权限没有写入权限,那它的子级文件夹就无法添加文件了
第三种 form 表单 enctype=multipart/form-data
表单中如果不加这个就会导致你接收不到文件的详细信息
文件上传后会有个错误码,0是成功,。。。。一直到6,实现不知错在哪儿了,可以看看状态码
上传生成的临时文件好像是2进制生成的,所以不要妄图打印,会乱码,上传成功后,临时文件会自动删除