上传图片。以用户头像保存本地磁盘为例,依托七牛的CDN节点加速访问,因此选择了七牛的对象存储来保存头像。下面以流程概览为主,根据实际遇到的问题和需求展开,只列出关键代码。技术基础Laravel5.4.36+webuploader(异步上传)//作者环境这么扩展,大家也可以在composer.lock中查看普通上传的实现publicfunctionwebUpload(Request$request){//1.是否有文件上传及上传文件Validity判断(文件,webUploader插件用来接收文件)if($request->hasFile('file')&&$request->file('file')->isValid()){$newFileName=md5($request->file('file')->getClientOriginalName().time()).'.'.$request->file('file')->getClientOriginalExtension();//2。保存到磁盘(为什么?通过查看/storage目录的.gitignore,我们知道该目录下的文件是可以提交的;并且在配置软链接后可以直接访问)//文件名重复被覆盖=>所以回到上面第一步=>自定义文件名$newFileNameStorage::disk('public')->put($newFileName,File::get($request->file('file')->path()));//Storagefacade确认存储位置,Filefacade获取文件的所有内容//3.返回结果return[//laravel会自动处理并以json数据形式返回'code'=>1,'message'=>'文件上传成功',//4.返回必须是/public下可以直接访问的图片地址。//因为laravel中的site直接指向/public,所以图片也必须在/public下(和之前设置的一样,图片保存在/storage/app/public中)//=>此时,软链接通过配置可以实现快速访问'path'=>'/storage/'。$新文件名];}return['code'=>0,'message'=>$request->file('file')->getErrorMessage(),];}软链接配置简述phpartisanstorage:链接命令参考及最终效果实现本地磁盘的存储,那么七牛上传不成问题。只是改变了图片保存的地址。七牛上传的实现1、上面已经实现了普通上传头像的七牛上传,然后在代码的基础上修改。2、使用七牛=>注册七牛=>选择并新建一个对象存储空间=>获取【空间名称和测试域名】官网https://www.qiniu.com/图标1:新建图标2:查询3.使用第三方集成的SDK处理上传https://github.com/zgldh/qini...4.修改普通上传的代码,有两个地方:存储位置Storage::disk('七牛')->put($newFileName,File::get($request->file('file')->path()));returnimageaddress'path'=>Storage::disk('qiniu')->getDriver()->downloadUrl($newFileName),//这里是图片存放在七牛云的路径(在第三方提供的文档)5.查看响应数据6.在html中将图片的返回地址提交给DB,即可在DB中查看相关信息
