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中汉字显示乱码问题(已解决)
Dec 27 Javascript
爱恋千雪-US-AscII加密解密工具(网页加密)下载
Jun 06 Javascript
页面中js执行顺序
Nov 09 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
Mar 04 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
Aug 13 Javascript
JS函数的定义与调用方法推荐
May 12 Javascript
详解Angular开发中的登陆与身份验证
Jul 27 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
Sep 06 Javascript
vue弹窗组件的实现示例代码
Sep 10 Javascript
深入了解js原型模式
May 30 Javascript
layui弹出框Tab选项卡的示例代码
Sep 04 Javascript
Openlayers显示瓦片网格信息的方法
Sep 28 Javascript
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截取字符串并保留完整xml标签的函数代码
2013/02/06 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
JavaScript通过this变量快速找出用户选中radio按钮的方法
2015/03/23 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
javascript表单正则应用
2017/02/04 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
vue router下的html5 history在iis服务器上的设置方法
2017/10/18 Javascript
Vuex中mutations与actions的区别详解
2018/03/01 Javascript
Vue中的v-for循环key属性注意事项小结
2018/08/12 Javascript
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
js实现车辆管理系统
2020/08/26 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
python with提前退出遇到的坑与解决方案
2018/01/05 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
工程地质勘察专业大学生求职信
2013/10/13 职场文书
本科生求职简历的自我评价
2013/10/21 职场文书
思想品德自我评价
2014/02/04 职场文书
党支部三会一课计划
2014/09/24 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
介绍信范文
2015/01/31 职场文书
抢劫罪辩护词
2015/05/21 职场文书
Vertica集成Apache Hudi重磅使用指南
2022/03/31 Servers