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 17 Javascript
JavaScript 继承详解(二)
Jul 13 Javascript
JQuery中的事件及动画用法实例
Jan 26 Javascript
浅谈JS原型对象和原型链
Mar 02 Javascript
Js获取图片原始宽高的实现代码
May 17 Javascript
canvas红包照片实例分享
Feb 28 Javascript
详解angular中的作用域及继承
May 31 Javascript
JS实现520 表白简单代码
May 21 Javascript
webpack4.0 入门实践教程
Oct 08 Javascript
vue quill editor 使用富文本添加上传音频功能
Jan 14 Javascript
vue相关配置文件详解及多环境配置详细步骤
May 19 Javascript
原生js 实现表单验证功能
Feb 08 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循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
让checkbox不选中即将选中的checkbox不选中
2014/07/11 Javascript
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
基于jquery实现表格内容筛选功能实例解析
2016/05/09 Javascript
jquery 多个radio的click事件实例
2016/12/03 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
在VUE中使用lodash的debounce和throttle操作
2020/11/09 Javascript
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
pandas通过loc生成新的列方法
2018/11/28 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
CSS3之2D与3D变换的实现方法
2019/01/28 HTML / CSS
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
大专自我鉴定范文
2013/10/01 职场文书
工艺工程师工作职责
2013/11/23 职场文书
给分销商的致歉信
2014/01/14 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
陕西导游词
2015/02/04 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
Java线程的6种状态与生命周期
2022/05/11 Java/Android