Laravel框架+Blob实现的多图上传功能示例
本文实例讲述了Laravel框架+Blob实现的多图上传功能。分享给大家供大家参考,具体如下:
一.介绍
我们知道多图上传一般都附带的又即时显示功能,即上传后可以立刻看到所传图片。之前一直用的一个多图上传插件是选择图片,点击上传然后图片资源上传到服务器,然后返回存储的路径信息,最后我们点击表单的提交按钮后将这些信息插入数据库。
现在有一个尴尬的地方,当我点击上传图片后,我又取消这次表单提交了。可是图片资源已经到服务器了,容易造成空间浪费等。
现在提供一个自己结合Laravel框架写的多图上传,(当然,在任何地方都可以直接套用),特点是:图片上传后可即时显示,但是是通过blob调用的浏览器缓存图片信息,当表单提交后,图片资源才会真正的上传服务器与数据库。
二.前端
注:本例基于Laravel框架
先上Form表单
{{csrf_field()}} 上传
JS代码
三.后台处理代码
publicfunctionstore(Request$request) { $data=$request->all(); $imgs=$data['imgs']; //array_values()用于重置数组下标 $types=array_values(array_filter(explode('image/',$data['types']))); $arr=array_values(array_filter(explode('&|||',$imgs))); foreach($arras$k=>$v){ //文件路径 $filepath=base_path().'/storage/app/imgs/'.date('YmdHis').$k.'.'.$types[$k]; //提取base64字符 $imgdata=substr($v,strpos($v,",")+1); $decodedData=base64_decode($imgdata); file_put_contents($filepath,$decodedData); //插入数据库 $img=newImg; $filepath=strchr($filepath,'/'); $img->img_path=$filepath; $img->save(); }
更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。