zoukankan      html  css  js  c++  java
  • layui-upload.render 文件上传后清空已上传的文件 选择文件后清空上一次选择的文件

          upload.render({
                  elem: '#LAY-excel-upload',  //绑定元素
                  url: MODULE_PATH + '/upload',//上传接口(PS:这里不用传递整个 excel)
                  accept: 'file', 
                  auto: false,  //选择文件后不自动上传 点击按钮触发
                  data:{"canshu":"参数"},//@RequestParam(value="canshu", required = false)String canshu 后台接收
                  bindAction: '#uploadAction', //指向一个按钮触发上传
                  exts: 'xls|xlsx',
                  choose: function (obj) {// 选择文件回调
                    var files = obj.pushFile();
                    <!-- ***************************************************************************** -->
                    //上传时 文件存进layui的文件上传队列,会出现重复校验第一次上传文件,设置校验删除之前历史文件
                    var lastX=0;  
                    var fileCount=0;
                    //遍历,获取最后一个文件的下标索引
                    for (var x in files) {
                        //x是文件对象的唯一索引,是个字符串,例如:1612418956647-0        
                        lastX=x;      
                        fileCount++;
                    }
                    if(fileCount>1){
                        //删除其他文件,保留最后一个文件
                        for (var x in files) {
                            if(x != lastX){               
                                delete files[x];
                            }
                        }
                    }
                    <!-- ***************************************************************************** -->
    var fileArr = Object.values(files);// 注意这里的数据需要是数组,所以需要转换一下 uploadExcel(fileArr); //上传校验 如果只需要最新选择的文件,可以这样写: uploadExcel([files.pop()]) }, before: function(obj){ layer.load(); }, done: function(res, index, upload){ layer.close(layer.load()); //导入后 回调函数 }, error:function(){ layer.close(layer.load()); } });
        function uploadExcel(files) {
                try {
                      excel.importExcel(files, {
                          // 可以在读取数据的同时梳理数据
                          fields: {
                            'nickname': 'A', 
                            'idNumber': 'B', 'email': 'C', 
                            'phone': 'D'
                          }
                        }, function(data) {
                            var emptyRow="";
                            fileTag=true;
                            fileIsNull=true;
                            if(data[0].sheet1.length<2) {//length : 0空文件 1只有表头
                                layer.msg("上传文件为空!", {icon: 7});  
                                $('#LAY-excel-upload').val("");
                            }else{
                                for (var i=1;i<data[0].sheet1.length;i++) {//从1开始  0为首行
                                    var tag=(data[0].sheet1[i].nickname == "") ? true : false;
                                    if(tag == true) {
                                        var a=i+1;
                                        if(emptyRow == "") {
                                            emptyRow = a+"";
                                        }else{
                                            emptyRow = emptyRow + "," +a;
                                        }
                                        continue;
                                    }
                                    tag=(data[0].sheet1[i].idNumber == "") ? true : false;
                                    if(tag == true) {
                                        var a=i+1;
                                       if(emptyRow == "") {
                                           emptyRow = a+"";
                                       }else{
                                           emptyRow = emptyRow + "," +a;
                                       }
                                        continue;
                                    }
                                   
                                    tag=(data[0].sheet1[i].email == "") ? true : false;
                                    if(tag == true) {
                                        var a=i+1;
                                        if(emptyRow == "") {
                                            emptyRow = a+"";
                                        }else{
                                            emptyRow = emptyRow + "," +a;
                                        }
                                        continue;
                                    }
                                    tag=(data[0].sheet1[i].phone == "") ? true : false;
                                    if(tag == true) {
                                        var a=i+1;
                                        if(emptyRow == "") {
                                            emptyRow = a+"";
                                        }else{
                                            emptyRow = emptyRow + "," +a;
                                        }
                                        continue;
                                    }
                                }
                                if(emptyRow != "") {
                                    layer.msg("表格中第"+emptyRow+"行有空数据,请填写完整后再上传!", {icon: 7});  
                                    $('#LAY-excel-upload').val("");
                                }
                            }
                    })
                   
                        
                } catch (e) {
                    layer.alert(e.message)
                }
           }
  • 相关阅读:
    669 v-on:绑定多个事件,参数传递,修饰符
    668 v-bind:绑定基本属性,绑定class,绑定style,动态绑定属性,绑定一个对象
    667 Vue模板语法:Mustache,基本指令
    666 vue3初体验,调试Vue的源码
    660 文本修饰标签:strong,em,sup,sub,del,ins
    655 webpack的Tree Shaking、Scope Hoisting:usedExports,sideEffects,CSS实现Tree Shaking,PurgeCss
    654 webpack的Terser、CSS的压缩
    653 webpack中使用CDN、shimming,Hash、ContentHash、ChunkHash
    652 webpack代码分离:多入口起点,入口依赖,SplitChunks,动态导入,代码懒加载,optimization.chunkIds、runtimeChunk,Prefetch和Preload
    651 webpack环境分离:区分环境,入口文件解析,配置文件的分离
  • 原文地址:https://www.cnblogs.com/ljc1212/p/15033884.html
Copyright © 2011-2022 走看看