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中的float运算精度实例分析
Aug 21 Javascript
JavaScript 程序编码规范
Nov 23 Javascript
Js日期选择器并自动加入到输入框中示例代码
Aug 02 Javascript
js采用map取到id集合组并且实现点击一行选中一行
Dec 16 Javascript
JavaScript使用Prototype实现面向对象的方法
Apr 14 Javascript
jQuery on()绑定动态元素出现的问题小结
Feb 19 Javascript
模拟javascript中的sort排序(简单实例)
Aug 17 Javascript
JS中parseInt()和map()用法分析
Dec 16 Javascript
js实现的xml对象转json功能示例
Dec 24 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
Aug 14 Javascript
JavaScript引用类型RegExp基本用法详解
Aug 09 Javascript
JS 实现获取验证码 倒计时功能
Oct 29 Javascript
利用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
PHP中一个控制字符串输出的函数
2006/10/09 PHP
PHP语法速查表
2006/12/06 PHP
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
详解JavaScript数组过滤相同元素的5种方法
2017/05/23 Javascript
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
python发送邮件实例分享
2017/07/28 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
Python使用OpenCV进行标定
2018/05/08 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
完美解决pycharm导入自己写的py文件爆红问题
2020/02/12 Python
django 多数据库及分库实现方式
2020/04/01 Python
印尼旅游网站:via
2017/11/12 全球购物
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
机械专业毕业生自荐信
2013/11/02 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
初中同学聚会邀请函
2014/02/03 职场文书
战友聚会主持词
2014/04/02 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
关于环保的广播稿
2015/12/17 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android