layui框架学习(43:文件上传模块-下)

  上一篇文章介绍文件上传模块使用示例时介绍了done和error事件,这两个事件是在文件上传成功(原文:在上传接口请求完毕后触发,但文件不一定是上传成功的)及上传失败(原文:请求上传出现异常)时触发。除了这两个事件,文件上传模块还支持其它几种事件,可以实现文件预览、显示上传文件列表等功能。
  选择文件后会触发choose事件,文件上传前会触发before事件,这两个事件中,choose事件在前,before事件在后,可以在这两个事件中实现图片预览、显示文件列表、弹出等待窗口等操作。注意,处理这两类事件时,一般需要将auto属性设置为false。
  图片预览的示例代码及效果如下所示:

	<button type="button" class="layui-btn" id="test">选择文件</button>	<div><img id="imgPreview" style="width: 100px;height: 100px"></div><script>layui.use(['upload','layer'], function(){var upload = layui.upload;var layer = layui.layer;var $ = layui.jqueryvar uploadInst = upload.render({elem: '#test' ,url: 'http://localhost:5098/ECData/UploadFile/' ,auto:false,done: function(res){layer.alert('文件上传完毕!');	},error: function(){layer.alert('文件上传失败!');	},choose: function(obj){obj.preview(function(index, file, result){$('#imgPreview').attr('src', result); });				  }});});</script>

在这里插入图片描述

  显示文件列表的示例代码及效果如下所示(代码参考自参考文献3):

<button type="button" class="layui-btn" id="test">选择文件</button>
<div class="layui-upload-list" style="max-width: 1000px;"><table class="layui-table"><colgroup><col><col width="150"><col width="260"></colgroup><thead><tr><th>文件名</th><th>大小</th><th>类型</th></tr></thead><tbody id="demoList"></tbody></table>
</div>
<script>layui.use(['upload', 'layer'], function() {var upload = layui.upload;var layer = layui.layer;var $ = layui.jqueryvar uploadInst = upload.render({elem: '#test',elemList: $('#demoList') ,url: 'http://localhost:5098/ECData/UploadFile/',auto: false,multiple: true,done: function(res) {layer.alert('文件上传完毕!');},error: function() {layer.alert('文件上传失败!');},choose: function(obj) {var that = this;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 / 1024).toFixed(1) + 'kb</td>','<td>'+file.type+'</td></tr>'].join(''));that.elemList.append(tr);});}});});
</script>

在这里插入图片描述
在这里插入图片描述

  文件上传过程中会触发progress,用于显示或处理文件上传进度信息,其事件响应函数的形式为function(n, elem, res, index),其中n为进度百分比,elem为触发的元素 DOM 对象,res为progress 响应信息,index为当前上传文件的索引。progress事件的响应示例代码及效果如下所示:
在这里插入图片描述

<button type="button" class="layui-btn" id="test">选择文件</button>
<label>上传进度:<span id="progress"></span></label>		
<script>layui.use(['upload', 'layer'], function() {var upload = layui.upload;var layer = layui.layer;var $ = layui.jqueryvar uploadInst = upload.render({elem: '#test',url: 'http://localhost:5098/ECData/UploadFile/',accept:'file',auto: true,done: function(res) {layer.alert('文件上传完毕!');},error: function() {layer.alert('文件上传失败!');},progress: function(n, elem, res, index){$('#progress').html(n+'%');}});});
</script>

在这里插入图片描述

  除了上述事件,layui的文件上传模块还支持触发多文件上传完毕事件allDone,同时支持重新上传、跨域上传等,详细介绍请见参考文献2.

参考文献:
[1]B站:layui框架精讲全套视频教程
[2]https://layui.gitee.io/v2/docs/
[3]https://layui.gitee.io/v2/demo/
[4]https://github.com/layui/layui/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/60086.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出AXI协议(3)——握手过程

一、前言 在之前的文章中我们快速地浏览了一下AXI4协议中的接口信号&#xff0c;对此我们建议先有一个简单的认知&#xff0c;接下来在使用到的时候我们还会对各种信号进行一个详细的讲解&#xff0c;在这篇文章中我们将讲述AXI协议的握手协议。 二、握手协议概述 在前面的文章…

《Kubernetes部署篇:Ubuntu20.04基于二进制安装安装cri-containerd-cni》

一、背景 由于客户网络处于专网环境下&#xff0c; 使用kubeadm工具安装K8S集群&#xff0c;由于无法连通互联网&#xff0c;所有无法使用apt工具安装kubeadm、kubelet、kubectl&#xff0c;当然你也可以使用apt-get工具在一台能够连通互联网环境的服务器上下载cri-tools、cont…

Python-使用xlsxwriter创建单元格下拉列表(数据校验)

在一个B/S系统中&#xff0c;用户经常需要从以Excel的方式填写后导入&#xff0c;此时网页上需要提供Excel填写的模板&#xff0c;将所需填写的字段以及所处的列的位置固定下来。其中&#xff0c;避免用户随意填写导致系统后台校验出错&#xff0c;对于某些字段&#xff0c;系统…

【运维】hadoop3.0.3集群安装(一)多节点安装

文章目录 一.Purpose二. Prerequisites三. Installation1. 节点规划2. Configuring Hadoop in Non-Secure Mode3. 准备工作4. 配置core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xmlworkers 4. 分发配置、创建文件夹5. 格式化6. 操作进程6.1. hdfs启动停止 6.2. yarn启动…

PyQt6 GUI界面设计和Nuitka包生成exe程序(全笔记)

PyQt6 GUI界面设计和Nuitka包,生成exe程序全笔记 目录一、PyQt6包安装1.1 进行环境配置和安装1.2 检查包是否安装成功。1.3 运行desinger.exe二、GUI界面设计,写程序,并能运行成功。三、Nuitka打包生成exe程序3.1 做Nuitka安装准备工作(1)安装C编译器,设置环境变量3.2 安…

创建Vue项目时报错!

Vue CLI v5.0.8 ✨ Creating project in F:\program\demodemo\demo. &#x1f5c3; Initializing git repository... ⚙️ Installing CLI plugins. This might take a while... npm ERR! code EPERM npm ERR! syscall open npm ERR! path D:\NodeJs\node_cache\_cacache\tm…

新功能上线!Salesforce Field Service人工智能创新

Salesforce Field Service是Service Cloud的扩展&#xff0c;可提供员工管理的全面视图。Field Service专为进行现场服务的员工而设计&#xff0c;例如服务技术人员、服务座席、调度员等。随着Salesforce平台上线越来越多的生成式AI新增功能&#xff08;包括Sales Cloud、Marke…

【PHP】常用的PHP内置函数

1、PHP内置函数非常丰富&#xff0c;用于执行各种任务。以下是一些常用的PHP内置函数&#xff1a; 字符串操作函数&#xff1a; strlen(): 返回字符串的长度。 strpos(): 查找字符串中的某个子串第一次出现的位置。 substr(): 返回字符串的子串。 str_replace(): 替换字符串中的…

Camunda 7.x 系列【38】表单服务 FormService

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 概述2. 演示2.1 获取流程开始表单2.2 启动流程2.3 查询任务表单2.4 完成任务3. 实际开发…

linux磁盘空间满了

登录服务器&#xff0c;通过df -Hl查看 确定告警信息一致&#xff0c;接着是找到占用空间大目录或文件 一种比较笨的方法是&#xff0c;在根目录下&#xff0c;通过du -sh命令&#xff0c;列出各目录所占空间大小 之后再用同样的方法继续到对应目录下去找 再相对高效一点的…

useState

道阻且长&#xff0c;行而不辍&#xff0c;未来可期 Hook是React 16.8.0版本增加的新特性 state hook让函数组件也有状态&#xff0c;也可以进行状态的读写。 语法&#xff1a;const [xxx&#xff0c;setXxx] React.useState(initValue); useState()说明&#xff1a;参数&am…

浅谈红队资产信息收集经验

文章目录 子公司资产收集备案号|官网收集子域名|ip收集fofa灯塔ARLX情报社区 资产确认目录扫描Google Hacking绕过CDNnmap端口扫描参数技巧其他常用工具 子公司资产收集 红蓝对抗中往往只会给你目标企业的名称&#xff0c;以及对应的靶标系统地址&#xff0c;而很少有直接从靶标…

给前端返回http链接,由于浏览器缓存不能获取到最新资源怎么办?

1、问题描述 今天在工作中接到这样一个需求&#xff0c;接收前端的图片文件并上传到远程&#xff0c;将原有图片覆盖并返回一个http链接以供前端展示。用户使用后反馈没有修改成功&#xff0c;上了远程拉图片发现已经修改了&#xff0c;但是用户浏览器还是老的图片。排查原因是…

MySQL基础入门

推荐查看 数据库相关概念 MySQL百度百科 MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的 RDBMS (Relational Databa…

Unity Android Bugly 报错地址查询

借助Android NDK arm-linux-androideabi-addr2line.exe 对报错的地址转换成对应代码行。 一、报错信息&#xff0c;例如来自Firebase 报错如下&#xff1a; Fatal Exception: Tombstone: Version 2020.3.33f1 (915a7af8b0d5), Build type Release, Scripting Backend il2cpp,…

KylinOS配置完静态IP地址后,保存按钮是灰色

问题: 配置完静态IP地址后,保存按钮置灰,并且提示“无效设置IPv4设置:ipv4.gateway:网关与”never-default”不兼容”。 原因: 这是由于禁止添加默认路由导致的。 解决方案: 1、使用nmcli命令: nmcli con modify "有线连接 1" ipv4.never-default no 执…

常见的数据结构之队列

一、介绍 队列(Queue)是一种常见的数据结构,用于存储和管理一系列数据元素,其中元素按照 先进先出(First-In-First-Out,简称FIFO)的原则进行插入和删除。 队列可以类比为现实生活中排队等候的场景,例如在超市收银台排队购物的顾客队列。 二、队列的基本操作 2.1 出…

Java代码审计15之Apache log4j2漏洞

文章目录 1、log4j简介2、复现2.1、高版本测试2.2、测试代码2.3、补充之dns探测2.3.1、rmi、ldap也可以dnslog探测 2.3.2、dnslog外带信息 3、漏洞原理3.1、漏洞的危害大的背景3.2、具体的代码调试 4、靶场测试4.1、dns探测4.2、工具下载与使用4.3、测试 5、bypass 1、log4j简介…

【一维差分】

一维差分 #include<iostream> using namespace std; const int N 100000 11;int n,m; int a[N],b[N];int main(){cin>>n>>m;for(int i1;i<n;i) cin>>a[i];for(int i1;i<n;i) b[i] a[i] - a[i-1];while(m--){int l,r,c;cin>>l>&…