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 相关文章推荐
清除网页历史记录,屏蔽后退按钮!
Dec 22 Javascript
javascript GUID生成器实现代码
Oct 31 Javascript
ECMAScript6中Map/WeakMap详解
Jun 12 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
Jun 24 Javascript
jQuery实现菜单栏导航效果
Aug 15 jQuery
浅析node.js的模块加载机制
May 25 Javascript
js中Generator函数的深入讲解
Apr 07 Javascript
详解VUE前端按钮权限控制
Apr 26 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
May 21 Javascript
开源一个微信小程序仪表盘组件过程解析
Jul 30 Javascript
layui清除radio的选中状态实例
Nov 14 Javascript
vue实现同时设置多个倒计时
May 20 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
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
thinkPHP下的widget扩展用法实例分析
2015/12/26 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
2016/04/01 PHP
php源码的安装方法和实例
2019/09/26 PHP
jQuery live
2009/05/15 Javascript
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
vue 音乐App QQ音乐搜索列表最新接口跨域设置方法
2018/09/25 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
Python中文竖排显示的方法
2015/07/28 Python
pytorch + visdom 处理简单分类问题的示例
2018/06/04 Python
Python应用领域和就业形势分析总结
2019/05/14 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
3种python调用其他脚本的方法
2020/01/06 Python
python 实现汉诺塔游戏
2020/11/28 Python
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
期末复习计划
2015/01/19 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
房产证明范本
2015/06/19 职场文书
微信小程序实现聊天室功能
2021/06/14 Javascript