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获得地址栏?问号后参数的方法
Aug 08 Javascript
js中的for如何实现foreach中的遍历
May 31 Javascript
js限制文本框只能输入整数或者带小数点的数字
Apr 27 Javascript
jquery实现清新实用的网页菜单效果
Aug 28 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
May 18 Javascript
用jquery获取自定义的标签属性的值简单实例
Sep 17 Javascript
JS禁止查看网页源代码的实现方法
Oct 12 Javascript
AngularJs验证重复密码的方法(两种)
Nov 25 Javascript
angular+ionic返回上一页并刷新页面
Aug 08 Javascript
学习RxJS之JavaScript框架Cycle.js
Jun 17 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
Aug 12 Javascript
js实现鼠标点击飘爱心效果
Aug 19 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
帅气的琦玉老师
2020/03/02 日漫
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
如何判断php数组的维度
2013/06/10 PHP
php 在线导入mysql大数据程序
2015/06/11 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
关于递归运算的顺序测试代码
2011/11/30 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
JQuery插件ajaxfileupload.js异步上传文件实例
2015/05/19 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
React如何解决fetch跨域请求时session失效问题
2018/11/02 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
如何在JavaScript中正确处理变量
2020/12/25 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
Django 中使用流响应处理视频的方法
2018/07/20 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
python读文件的步骤
2019/10/08 Python
python 绘制国旗的示例
2020/09/27 Python
Python 创建守护进程的示例
2020/09/29 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
爱普生美国官网:Epson美国
2018/11/05 全球购物
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
公务员更新知识培训实施方案
2014/03/31 职场文书
公司授权委托书范文
2014/08/02 职场文书
法人委托书范本格式
2014/09/15 职场文书
工作态度不端正检讨书
2014/10/04 职场文书
生日赠语
2015/06/23 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书
2019年销售部季度工作计划3篇
2019/10/09 职场文书
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript