layui实现多图片上传并限制上传的图片数量


Posted in Javascript onSeptember 26, 2019

废话不多说了,直接上代码吧!

//给图片添加删除
    function mouseChange() {
        $(document).on("mouseenter mouseleave", ".file-iteme", function (event) {
          if (event.type === "mouseenter") {
            //鼠标悬浮
            $(this).children(".info").fadeIn("fast");
            $(this).children(".handle").fadeIn("fast");
          } else if (event.type === "mouseleave") {
            //鼠标离开
            $(this).children(".info").hide();
            $(this).children(".handle").hide();
          }
        });
 
    }
    mouseChange();
 
  //json的length 
  function getJsonLength(jsonData){
      var jsonLength = 0;
      for(var item in jsonData){
        jsonLength++;
      }
      return jsonLength;
    }
 
    //多图片上传
    var ImgList = $('#uploader-list'),uploadListIns =upload.render({
      elem: '#chooseImg',
      url: $("#projectUrl").val()+ '/img/imgUpload.do',
      accept: 'images',
      acceptMime: 'image/jpg,image/png,image/jpeg',
      exts: 'jpg|png|jpeg',
      size: 1024,
      multiple: true,
      auto: true,
      choose: function(obj){
        var files = obj.pushFile(); //将每次选择的文件追加到文件队列
        var len = getJsonLength(files);
        //读取本地文件
        obj.preview(function (index, file, result) {
          if (parseInt(len)+parseInt(coachPicsArray.length)-count > 6){
            layer.msg("门店图片不能超过6张");
            //遍历
            $.each(files,function(_key){
              var key = _key;
              var value = files[_key];
              if(_key == index)
              { //删除
                delete files[_key];
              }
            });
          }else {
            var reader = new FileReader();
            reader.onload = function (e) {
              var image = new Image();
              image.onload = function () {
                var realWidth = image.width;
                var realHeight = image.height;
                var tr = $(['<div id="upload-' + index + '" class="file-iteme">' +
                '<div class="removeIcon handle"> <i class="layui-icon" style="color: white ;margin-right: 40%"></i></div>' +
                '<img style="color: white;width: 120px" "showBig(this)" src=' + result + ' id="img-' + index + '">' +
                '</div>'].join(''));
 
                //删除
                tr.find('.handle').on('click', function () {
                  $(this).parent().remove();
                  delete files[index]; //删除对应的文件
                  var value = $("#clubCoachPics").val().split(",");
                  var arr = [];
                  for( var i in value){
                    if (value[i] != $(this).next().data('value')){
                      arr.push(value[i]);
                    }
                  }
                  $("#clubCoachPics").val(arr.join(",")) ;
 
                });
                ImgList.append(tr);
 
              };
              image.src = result;
            };
            //正式读取文件
            reader.readAsDataURL(file);
          }
        });
      },
      before: function (obj) {
        layer.msg('图片上传中...', {
          icon: 16,
          shade: 0.01,
          time: 3000
        })
      },
      done: function (res, index, upload) {
        $("#img-"+ index + "").attr("data-value",res.imgUrl);
        if(res.code == 0){ //上传成功
          var imgUrl = $("#clubCoachPics").val();
          if(imgUrl==null||imgUrl==""){
            $("#clubCoachPics").val(res.imgUrl);
          }else{
            $("#clubCoachPics").val(imgUrl+","+res.imgUrl);
          }
          delete files[index]; //删除文件队列已经上传成功的文件
          return;
        };
 
      }
    });

以上这篇layui实现多图片上传并限制上传的图片数量就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 页面输出值
Nov 30 Javascript
js的2种继承方式详解
Mar 04 Javascript
jQuery实现类似标签风格的导航菜单效果代码
Aug 25 Javascript
javascript单页面手势滑屏切换原理详解
Mar 21 Javascript
jQuery解决$符号命名冲突
Jun 18 Javascript
Vue响应式原理深入解析及注意事项
Dec 11 Javascript
axios中cookie跨域及相关配置示例详解
Dec 20 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
May 12 Javascript
JavaScript实现抖音罗盘时钟
Oct 11 Javascript
简单了解JavaScript arguement原理及作用
May 28 Javascript
解决vue打包 npm run build-test突然不动了的问题
Nov 13 Javascript
vue3中provide && inject的使用
Jul 01 Vue.js
layui 阻止图片上传的实例(before方法)
Sep 26 #Javascript
layui 上传图片 返回图片地址的方法
Sep 26 #Javascript
vue仿ios列表左划删除
Sep 26 #Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
Sep 26 #Javascript
vue实现百度搜索功能
Dec 28 #Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
Apr 10 #Javascript
Vue 中使用富文本编译器wangEditor3的方法
Sep 26 #Javascript
You might like
php htmlentities()函数的定义和用法
2016/05/13 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
js function使用心得
2010/05/10 Javascript
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
2016/08/25 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
2017/11/09 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
wxpython 学习笔记 第一天
2009/02/09 Python
python执行子进程实现进程间通信的方法
2015/06/02 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
2016/12/04 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
python构建深度神经网络(续)
2018/03/10 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
Python中实现输入一个整数的案例
2020/05/03 Python
python 如何设置守护进程
2020/10/29 Python
享受加州生活方式的时尚舒适:XCVI
2018/07/09 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
比较基础的php面试题及答案-编程题
2012/10/14 面试题
岗位职责风险防控
2014/02/18 职场文书
2014年党务公开实施方案
2014/02/27 职场文书
企业晚会策划方案
2014/05/29 职场文书
2015年度残疾人工作总结
2015/05/14 职场文书
python 详解turtle画爱心代码
2022/02/15 Python
MySQL读取JSON转换的方式
2022/03/18 MySQL
vue选项卡切换的实现案例
2022/04/11 Vue.js
MySQL数据管理操作示例讲解
2022/12/24 MySQL