layui上传插件带预览非自动上传功能(非常实用)

layui上传插件带预览非自动上传功能(非常实用)

首先 Html部分:

Max. 3 attachements. Max. 3MB for each image. Submit

JS部分:

//添加图片 layui.use(‘upload’, function() {     var upload = layui.upload;//得到upload对象     var frequency = 0;//记录上传成功的个数     //多文件列表示例     var demoListView = $(‘.comment-imgbox.refund-img #addImg’),         uploadListIns = upload.render({ //执行实例             elem: ‘#addImg’,//绑定文件上传的元素             url: ‘../upload.php’,             multiple: true,             number: 3,//允许上传的数量             auto: false,             bindAction: ‘#comment-btn’,//指向一个按钮触发上传                     size:’3072′,//尺寸             accept: “images”,//指定允许上传时校验的文件类型     acceptMime:’image/*’,只显示图片文件 exts:”jpg|png|gif|jpeg”,//允许后缀 drag:”false”,//是否文件拖拽上传 data:{width:400,height:400},//上传接口的额外参数 choose: function(obj) { //选择文件后的回调函数 var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列 //如果图片3个,addImg隐藏 //假如项目只能传3个图片 if(Object.keys(files).length == 3){ $(“#addImg”).hide(); } //读取本地文件 如果是多文件,则会遍历。(不支持ie8/9)                        console.log(index); //得到文件索引console.log(file); //得到文件对象console.log(result); //得到文件base64编码,比如图片//obj.upload(index, file); //对上传失败的单个文件重新上传,一般在某个事件中使用 obj.preview(function(index, file, result) { //obj.upload(index, file); //对上传失败的单个文件重新上传,一般在某个事件中使用                            var div = $([”, ”,         ”, ”].join(”)); //删除列表中对应的文件 div.find(‘.refund-img-close’).on(‘click’, function() { delete files[index]; //删除对应的文件 div.remove(); uploadListIns.config.elem.next()[0].value = ”; //清空 input file 值,以免删除后出现同名文件不可选 $(“#addImg”).show(); }); demoListView.before(div); }); }, before:function(){ //obj参数包含的信息,跟 choose回调完全一致如果带参 修改了layui js的before方法 return confirm(“Did you confirm submitting this review? Comments scores and content will not be changeable after submission’);”);                        //为了可以让客户在点击确定是时候有2个选择 }, done: function(res) { //上传成功 frequency++; $(“#proImg”+frequency).val(res);//隐藏域表单赋值 alert(11);                                                                                //当节点与上传成功一致时     if($(“.refund-img .exist”).length == frequency){ $(“#submitForm”).trigger(“click”);//提交表单 } }, error: function(res, index, upload) { Dtoast(“Failed to upload picture”); } }) });

部分CSS:

.refund-img{ display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -moz-box-align: center; -ms-flex-align: center; align-items: center; margin-top: 30px;}.refund-img-item{ width: 30%; position: relative;}.refund-img-item:nth-child(2){ margin: 0 5%;}.addRefundimg{ border: 1px dashed #BFBFBF;}.refund-img-item img.proimg{ width: 100%;}.refund-img-item input[type=file]{ position: absolute; left: 0; top: 0; width: 100%; height: 100%; outline: none; border: none; opacity: 0;}.refund-img-close{ position: absolute; width: 20px; top: 0; right: 0; padding-right: 5px; padding-top: 5px; /*display: none;*/}.addRefundimg .refund-img-close{ /*display: none;*/}.refund-img-prompt{ display: block; margin-top: 5px; margin-bottom: 3px;}.refund-submit{ display: block; text-align: center; height: 40px; line-height: 40px; width: 98%; background-color: #fc6900; color: #fff; font-size: 16px; border: none; outline: none; margin-top: 8px; margin-bottom: 20px;}.comment-btn{ width: 96%; background-color: #fc6900; color: #fff; height: 36px; text-align: center; line-height: 36px; display: block; outline: none; border: none; margin-top: 30px;}

before需要部分修改 参照的 https://blog.csdn.net/zhangxiaoyang0/article/details/78814453 稍有不同而已

本人为了自己以后开发方便,上传了修改后的框架 https://download.csdn.net/download/qq_37246267/10326501


比丘资源网 » layui上传插件带预览非自动上传功能(非常实用)

发表回复

提供最优质的资源集合

立即查看 了解详情