layui实现文件或图片上传记录


Posted in Javascript onAugust 28, 2018

本文为大家分享了layui实现文件或图片上传记录的具体代码,供大家参考,具体内容如下

首先是layui自己的官网关于图片/文件上传的帮助文档:

接下来是我自己的使用记录:

1.首先在js中定义一个全局变量

var uploadListIns;

2.进行赋值

//多文件列表示例
/**
 * 图片上传
 */
layui.use('upload', function(){
 var $ = layui.jquery,upload = layui.upload;
 var demoListView = $('#proImageList');
 uploadListIns = upload.render({
  elem: '#chooseFile', //选择文件的按钮
  url: 'upload!ftp.action', //后台处理文件长传的方法
  data:{'serviceName':'外协订单供应商上传检验报告','tableName':'T_OUTSOURCE_ORDER','fileType':'图片'},
  accept: 'file', 
  multiple: true,  //是否允许多文件上传
  acceptMime: 'image/*', //规定打开文件选择框时,筛选出的文件类型
  field:'upload',  
  auto: false, 
  bindAction: '#upload', //用来触发上传的按钮ID
  choose: function(obj){ //选择文件后的回调函数,本例中在此将选择的文件进行展示
   var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
   //读取本地文件
   obj.preview(function(index, file, result){
    var tr = $(['<tr id="upload-'+ index +'">'
     ,'<td>'+ file.name +'</td>'
     ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>'
     ,'<td>等待上传</td>'
     ,'<td>'
     ,'<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>'
     ,'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>'
     ,'</td>'
     ,'</tr>'].join(''));
 
    //单个重传
    tr.find('.demo-reload').on('click', function(){
     obj.upload(index, file);
    });
 
    //删除
    tr.find('.demo-delete').on('click', function(){
     delete files[index]; //删除对应的文件
     tr.remove();
     uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
    });
    demoListView.append(tr);
   });
  },  
  done: function(res, index, upload){    //多文件上传时,只要有一个文件上传成功后就会触发这个回调函数
   console.info(res);
   if(res.status == "success"){ //上传成功
    var tr = demoListView.find('tr#upload-'+ index)
     ,tds = tr.children();
    tds.eq(2).html('<span style="color: #5FB878;">上传成功</span>');
    tds.eq(3).html('<a href="'+res.url+'" rel="external nofollow" >查看</a>'); //清空操作
    return delete this.files[index]; //删除文件队列已经上传成功的文件
   }else{
    alert(res.message);
   }
   this.error(index, upload);
  },
  allDone: function(obj){ //当文件全部被提交后,才触发
   if(obj.total > obj.successful){
    layer.msg("有文件上传失败,暂不更新生产进度,请重试或联系管理员");
   }else {
    //更新生产进度
    updateProductionSchedule(currentId, currentSchedule);
   }
  },
  error: function(index, upload){
   var tr = demoListView.find('tr#upload-'+ index)
    ,tds = tr.children();
   tds.eq(2).html('<span style="color: #FF5722;">上传失败</span>');
   tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传
  }
 });
 $(".layui-upload-file").hide();
});

上述js代码中出现的相关html元素如下,相关引入js文件和css为:bootstrap3的js和css及layui的js文件即可

<!-- 模态框(Modal) -->
<div class="modal fade" id="uploadModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
 <div class="modal-dialog">
  <div class="modal-content">
   <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
     ×
    </button>
    <h4 class="modal-title" id="myModalLabel">
     上传检验报告
    </h4>
   </div>
   <div class="modal-body">
    <button type="button" class="btn btn-primary" id="chooseFile">选择多文件</button>
    <button type="button" class="btn btn-success" id="upload">开始上传</button>
    <div class="table-responsive">
     <table class="table table-hover">
      <thead><tr>
       <th>文件名</th>
       <th>大小</th>
       <th>状态</th>
       <th>操作</th>
      </tr></thead>
      <tbody id="proImageList"></tbody>
     </table>
    </div>
   </div>
   <div class="modal-footer">
    <button type="button" class="btn btn-default" data-dismiss="modal">关闭
    </button>
   </div>
  </div><!-- /.modal-content -->
 </div><!-- /.modal -->
</div>

3.在打开模态框时可以对1中定义的变量进行动态赋值,这些变量会相应的传到后台中:

function showUploadModal(id) {
 //动态赋值
 uploadListIns.config.data.tableRecordId = id;
 uploadListIns.config.data.filenamePrefix = id+".自检pass.";
 $("#uploadModal").modal("show");
}

4.最终前端实现效果如下:

layui实现文件或图片上传记录

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中的无阻塞加载性能优化方案
Oct 10 Javascript
jQuery中noConflict()用法实例分析
Feb 08 Javascript
原生和jQuery的ajax用法详解
Jan 23 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
Jun 13 Javascript
基于Vue渲染与插件的加载顺序的问题详解
Mar 05 Javascript
axios全局请求参数设置,请求及返回拦截器的方法
Mar 05 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
Oct 24 Javascript
浅谈JS的原型和继承
May 08 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
Jul 05 Javascript
angularjs1.X 重构controller 的方法小结
Aug 15 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
Sep 04 Javascript
详解vue身份认证管理和租户管理
May 25 Vue.js
利用vue.js把静态json绑定bootstrap的table方法
Aug 28 #Javascript
react native 获取地理位置的方法示例
Aug 28 #Javascript
微信小程序自定义音乐进度条的实例代码
Aug 28 #Javascript
JavaScript模拟实现自由落体效果
Aug 28 #Javascript
vue-cli3脚手架的配置及使用教程
Aug 28 #Javascript
vue.js实现带日期星期的数字时钟功能示例
Aug 28 #Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
Aug 28 #Javascript
You might like
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
基于pear auth实现登录验证
2010/02/26 PHP
PHP学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
js判断日期时间有效性的方法
2015/10/24 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
jquery 手势密码插件
2017/03/17 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
推荐11个实用Python库
2015/01/23 Python
详解Python中for循环的使用方法
2015/05/14 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
Python安装whl文件过程图解
2020/02/18 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
11月升旗仪式讲话稿
2014/02/15 职场文书
公立医院改革实施方案
2014/03/14 职场文书
交通工程专业推荐信
2014/09/06 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
休学证明范本
2015/06/19 职场文书
敬老院活动感想
2015/08/07 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
详解Apache SkyWalking 告警配置指南
2021/04/22 Servers
Pytorch 如何实现常用正则化
2021/05/27 Python