webuploader 多图上传删除方法实现
来源:互联网 发布:mac 全角空格 编辑:程序博客网 时间:2024/06/05 22:39
webuploader配合后端实现多图上传并且入库:
效果图:
① 数据库设计用的一个字段photo存储,类型text防止图片过多导致长度不够,每张图片用‘,’连接成字符串;
如:上传 img1.jpg,img2.jpg
存储值:img1.jpg,img2.jpg
② 两步工作:
A.前端获取“要保存的所有图片” 和 “点击删除的所有图片”;
html部分:
<div class="form-group"> <label class="col-sm-3 control-label">展示图片</label> <div class="col-sm-7"> <div id="fileList" class="uploader-list" style="float:right"></div> <div id="imgPicker" style="float:left">添加图片</div> </div></div>
js部分:
<script type="text/javascript" src="/static/admin/webupload/webuploader.min.js"></script> //引入js,换成你自己的路径 /* * 图片上传脚本 */ var $list = $('#fileList'); //上传图片,初始化WebUploader var uploader = WebUploader.create({ auto: true,// 选完文件后,是否自动上传。 swf: '/static/admin/js/webupload/Uploader.swf',// swf文件路径 换成你的接收路径 server: "/admin/upload/upload.html",// 文件接收服务端 换成你的接收路径 duplicate :true,// 重复上传图片,true为可重复false为不可重复 pick: '#imgPicker',// 选择文件的按钮 accept: { title: 'Images', extensions: 'gif,jpg,jpeg,bmp,png', mimeTypes: 'image/jpg,image/jpeg,image/png' }, 'onUploadSuccess': function(file, data, response) { var up_src = data._raw.replace("\\", "\/"); //上传成功后显示图片 var $li = $( '<div id="' + file.id + '" class="file-item thumbnail draggable-element d-"'+file.id.substr(file.id.length-1,1)+' style="position:relative;">' + '<img>' + '<a class="file-panel" href="javascript:;" onclick="remove(\''+up_src+'\', \''+file.id+'\')">' + '<span class="fa fa-close"></span>' + '</a>' + '<input type="hidden" id="data_photo" name="photo[]" value="'+up_src+'">' + '</div>' ), $img = $li.find('img'); // $list为容器jQuery实例 $list.append( $li ); // 创建缩略图 如果为非图片文件,可以不用调用此方法 100(宽) x 100(高) uploader.makeThumb( file, function( error, src ) { if ( error ) { $img.replaceWith('<span>不能预览</span>'); return; } $img.attr( 'src', src ); }, 100, 100 ); } }); // 当有文件添加进来的时候 uploader.on( 'fileQueued', function( file ) { }); // 文件上传成功 uploader.on( 'uploadSuccess', function( file ) { $( '#'+file.id ).find('p.state').text('上传成功!'); }); // 文件上传失败,显示上传出错。 uploader.on( 'uploadError', function( file ) { $( '#'+file.id ).find('p.state').text('上传出错!'); }); /** * [remove 移除图片] * @post [file] [文件名 (必填)] * @post [obj] [操作对象] [前台操作数据 移除dom标志] * * @return * @Author[summer 1012684399@qq.com] THINK MORE DO LESS */ function remove(file, obj){ $('#'+obj).remove(); var html = '<input type="hidden" id="data_photo" name="remove[]" value="'+file+'">'; $('#fileList').append(html); }
B.后端入库要保存的图片,从内存删除要删除的图片
经过A步骤,我们已经将图片上传到了服务器并且得到了
要入库的所有图片信息数组:$photo
所有点击删除了的图片信息数组:$remove
然后我们:implode(‘,’,$photo)后入库,foreach $remove后一个个删除资源
注:这个地方存储的时候两个php函数比较关键,
implode() ->数组变字符串
explode() ->字符串变数组,用法自行百度。
//移除资源 $remove = isset($param['remove']) ? $param['remove'] : array(); // 获取移除数据 unset($param['remove']); $tools = new \org\Tools; $result = $tools->del_file('../public/uploads/images/', $remove); $param['photo'] = isset($param['photo']) ? implode(',', $param['photo']) : ''; //获取插入数据
附php资源删除tools方法:
/** * [del_file 删除文件] * @param [file][array] [资源集合] [必填][默认图片上传路径] * @param [path][string] [资源路径] [必填] * author summer 1012684399 THINK MORE DO LESS [WEHACK] */ public function del_file($path='../public/uploads/images/', $file){ foreach ($file as $k => $v) { $source = $path.$v; //资源路径 $result = @unlink ($source); } }
完美收官。有疑问可以联系我。
阅读全文
0 0
- webuploader 多图上传删除方法实现
- webuploader+springMvc+JSP 多图上传实现
- WebUploader删除上传文件
- springMVC+WebUploader实现多图片上传
- webuploader 多文件上传
- webuploader+springmvc实现图片上传
- 插件webuploader实现文件上传
- webUploader插件实现文件上传
- webuploader实现大文件上传
- 插件webuploader实现文件上传
- 插件webuploader实现文件上传
- (转)ueditor使用webuploader以后多图上传后顺序乱掉问题解决方法
- WebUploader 同一页面中集成 多实例,单图上传,多图上传,编辑回显,删除(包括逻辑删除,显示移除)
- 多图片上传插件webuploader
- WebUploader上传
- webuploader 实现大文件 分片上传
- JFinal+WebUploader实现图片的异步上传
- WebUploader+SpringMVC实现文件上传功能
- 使用adb快速安装
- sqlserver 交集 并集 差集
- java面试题之Java 有没有goto?
- sql 按中文排序
- WEBBASIC Unit06 外部对象概述 、 window 对象 、 document 对象
- webuploader 多图上传删除方法实现
- 微信小程序UI组件 开发框架 实用库 经典demo
- 如何解析设置域名添加www和不添加www都能够访问
- 接口协议框架
- centos 6.5系统PHP环境下的CURL库的SSL Version默认为NSS,怎么变更为OpenSSL?
- Java多线程实现的三种方式
- java代码部分优化策略
- JQuery ajax 上传文件
- 函数计算-建立一个简单的数学计算函数场景