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

news2024/11/26 0:09:05

  上一篇文章介绍文件上传模块使用示例时介绍了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.jquery
		   
		  var 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.jquery

		var 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.jquery
		
		var 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.coloradmin.cn/o/950614.html

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

相关文章

一篇文章带你快速入门使用Git

文章目录 前言一、什么是版本控制二、Git与SVN的主要区别三、下载及使用1.安装2.启动Git3.常用的Linux命令4.Git配置 四、Git基本理论1.三个区域2.工作流程 五、Git项目搭建1.创建工作目录与常用指令2.本地仓库搭建3.克隆远程仓库 六、Git文件操作1.文件的四种状态2.查看文件状…

ElasticSearch最全详细使用教程:入门、索引管理、映射详解

导读&#xff1a;本文介绍了ElasticSearch的必备知识&#xff1a;从入门、索引管理到映射详解。 一、快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明&#xff1a;v是用来要求在结果中返回表头 状态值说明 Green - eve…

JavaScript基础语法01——初识JavaScript

哈喽&#xff0c;大家好&#xff0c;我是雷工&#xff01; 最近有项目用到KingFusion软件&#xff0c;由于KingFusion是B/S架构的客户端组态软件&#xff0c;因此在学习KingFusion产品时会涉及许多前端的知识。 像JavaScript语言就是需要用的&#xff0c;俗话说&#xff1a;活到…

工单管理报修系统有什么用?的修工单系统助您解决报修难点

随着互联网的快速发展&#xff0c;许多企业都开始使用“的修”工单管理系统&#xff0c;这是一款企业管理软件&#xff0c;可以帮助管理员用户针对不同的机构、单位以及外部客户的需求来选择性地管理、维护及追踪各种各样的问题和请求&#xff0c;也可用作公司内部员工工作上的…

【数据结构与算法 模版】高频题刷题模版

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【】&#xff0c;使用【】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&#xff1a;目标公…

nacos在windows和linux的安装(教程都是完全一样的,因为是java写的)

文章目录 nacos下载Java安装&#xff08;作者用的是java8&#xff09;Windows编辑启动脚本文件编辑配置文件集群配置&#xff08;非常简单&#xff09; Linux其他 nacos下载 点击进入github下载页面nacos手册nacos是用java写的&#xff0c;可以跨平台&#xff0c;根本不存在li…

C. Divisor Chain

题目&#xff1a;样例&#xff1a; 输入 3 3 5 14 输出 3 3 2 1 4 5 4 2 1 6 14 12 6 3 2 1 题意&#xff1a; 输入 x &#xff0c;使得 x 一直减某个数值 一直减到 1&#xff0c;所减的这个数值不能出现两次&#xff0c;输出该过程 x 的变化情况。 思路&#xff1a; 我们可…

uniapp项目实战系列(2):新建项目,项目搭建,微信开发工具的配置

目录 系列文章目录uniapp项目实战系列(1)&#xff1a;导入数据库&#xff0c;启动后端服务&#xff0c;开启代码托管&#xff08;点击跳转&#xff09;1.新建项目2.托管项目的操作&#xff1a;&#xff08;无勾选托管项目可无视&#xff09;3.项目编译预览3.1游览器编译3.2微信…

自然语言处理(五):子词嵌入(fastText模型)

子词嵌入 在英语中&#xff0c;“helps”“helped”和“helping”等单词都是同一个词“help”的变形形式。“dog”和“dogs”之间的关系与“cat”和“cats”之间的关系相同&#xff0c;“boy”和“boyfriend”之间的关系与“girl”和“girlfriend”之间的关系相同。在法语和西…

DP读书:不知道干什么就和我一起读书吧

DP读书&#xff1a;不知道干什么就和我一起读书吧 为啥写博客&#xff1a;好处一&#xff1a;记录自己的学习过程优点二&#xff1a;让自己在各大社群里不那么尴尬推荐三&#xff1a;坚持下去&#xff0c;找到一个能支持自己的伙伴 虽然清楚知识需要靠时间沉淀&#xff0c;但在…

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

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

keras深度学习框架构建LeNet5神经网络模型实现手写数字识别

之前两篇文章分别通过keras深度学习框架构建简单神经网络和卷积神经网络实现过手写数字识别实验。这篇文章分享我根据LeNet5模型构建的卷积神经网络来实现手写数字识别。 这个实验是根据LeNet5模型构建卷积神经网络&#xff0c;LeNet5模型的原理图如下所示&#xff1a; 相信大家…

3、DVWA——CSRF

文章目录 一、CSRF概述二、low2.1 通关思路2.2 源码分析 三、medium3.1 通关思路3.2 源码分析 四、high4.1 通关思路4.2 源码分析 五、impossible 一、CSRF概述 CSRF全称为跨站请求伪造&#xff08;Cross-site request forgery&#xff09;&#xff0c;是一种网络攻击方式&…

基于向量加权平均算法优化的BP神经网络(预测应用) - 附代码

基于向量加权平均算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于向量加权平均算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.向量加权平均优化BP神经网络2.1 BP神经网络参数设置2.2 向量加权平均算法应用 4.测试结…

华为 连接OSPF和RIP网络---OSPF和RIP网络相互引入

路由引入简介 不同路由协议之间不能直接共享各自的路由信息&#xff0c;需要依靠配置路由的引入来实现。 获得路由信息一般有3种途径&#xff1a;直连网段、静态配置和路由协议。可以将通过这3种途径获得的路由信息引入到路由协议中&#xff0c;例如&#xff0c;把直连网段引入…

vue3+element plus 封装上传组件(图片、文件)

vue3element plus 封装上传组件&#xff08;图片、文件&#xff09; 1、新建封装组件components/upload.vue2、引入upload组件3、效果展示 1、新建封装组件components/upload.vue <template><el-upload v-model:file-list"waitFileList" class"upload…

阿里云矢量图标透明背景转换/展示时变为黑色解决方法

下载了一个矢量图标&#xff0c;背景是透明的 上传到minio然后在前端展示&#xff0c;发现透明&#xff08;白色&#xff09;的地方变成黑色了 处理方法&#xff1a;去除透明的底色。使用window的画图程序打开保存一遍&#xff0c;将透明色转为白色 OK

【UniApp开发小程序】小程序首页完善(滑到底部数据翻页、回到顶端、基于回溯算法的两列数据高宽比平衡)【后端基于若依管理系统开发】

文章目录 说明细节一&#xff1a;首页滑动到底部&#xff0c;需要查询下一页的商品界面预览页面实现 细节二&#xff1a;当页面滑动到下方&#xff0c;出现一个回到顶端的悬浮按钮细节三&#xff1a;商品分列说明优化前后效果对比使用回溯算法实现ControllerService回溯算法 优…

Mac网页开发工具 RapidWeaver 9

RapidWeaver是一款Mac上的网页设计和开发工具&#xff0c;它使用户能够快速创建专业级别的网站&#xff0c;而无需编写代码。 以下是RapidWeaver软件的一些主要特点和功能&#xff1a; 模板和主题&#xff1a;RapidWeaver提供了大量的预先设计好的模板和主题&#xff0c;使用…

【jvm】运行时数据区

目录 一、运行时数据区一、作用二、说明三、线程共用与私有区域 一、运行时数据区 一、作用 1.内存是非常重要的系统资源&#xff0c;是硬盘和CPU 的中间仓库及桥梁&#xff0c;承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策…