web前端学习笔记-本地图片、文件上传并预览(兼容ie8)

news/2024/7/10 23:06:42 标签: js, jquery, html

文件上传通常会涉及到FileReader对象,主流的chrome FireFox edge 都支持FileReader对象,ie浏览器中ie10以下不支持FileReader对象,ie10以下文件上传的解决办法是用flash
在这里插入图片描述

一、FileReader对象实现文件上传并预览(图片)

文件上传主要是拿到用户上传的本地文件并提交给后台,图片上传是文件上传特殊的一类,经常需要实现图片的预览,预览图片用两种方法,方法一:前端获取图片的base64再渲染页面,方法二:前端提交数据到后台,后台返回一个图片链接,前端再把图片链接渲染到界面。方法二更简单,这里演示方法一。

html代码

html"><input type="file" id="file_obj" onchange="fileChange(this)" accept="image/jpeg" style="display: none;" />
		<button type="button" id="up_btn">点击上传文件</button>
		<img src="" width="200" height="200" id="w_img">

JS代码

//jQuery =>记得引入html" title=jquery>jquery文件
$("#up_btn").click(function() {
	$("#file_obj").click()
})


// 文件上传
function fileChange(obj) {

	let file = obj.files[0]; //获取到文件
	if (file) {

		/* 发送给服务器 */
		$.ajax({
			type: "POST",
			'Content-Type': 'application/html" title=js>json',
			url: init.baseUrl + "/article/uploadImage",
			data: {
				file: file
			},
			success: function(data) {
				// do something
			}
		});

		/*  预览图片 => 如果上传文件 此步骤省略 */
		let fr = new FileReader(); //创建FileReader 对象
		fr.readAsDataURL(file)
		fr.onload = function(e) {
			let res = e.target.result //获取图片base64
			$("#w_img").attr("src", res)

		}
	}

}

二、ie8及以下实现文件上传和预览

ie10以下不支持fileReader对象,同时也不支持FormData对象的append方法,
图片上传参考:https://github.com/zilan93/uploadImg/blob/master/uploadImg.html" title=js>js


http://www.niftyadmin.cn/n/936635.html

相关文章

Dalvik 与 ART

Dalvik 本词条缺少信息栏&#xff0c;补充相关内容使词条更完整&#xff0c;还能快速升级&#xff0c;赶紧来编辑吧&#xff01;Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支…

CMD的基础知识点

cmd命令提示符&#xff0c;windows系统自带的软件&#xff0c;快捷键&#xff1a;Windows键 R cmd的常用的命令&#xff1a; 1). dir 将当前工作路径下的文件以及文件夹列出来. 2).切换工作路径cd 命令 改变cmd程序的工作路径 3). mkdir ---> make dir 创建文件夹. 在当前…

javascript获取和修改元素 节点的所有方法

一、获取和修改内联样式 html <div class"div1" style"width: 200px;"></div>js var oDiv document.getElementsByTagName("div")[0]console.log(oDiv.style.width);//200pxoDiv.style.backgroundColor "#000"//修改…

SQL SERVER CXPACKET-Parallelism Wait Type 的惯用解决方案

最近我的两个库出现&#xff0c;出现较多的CXPACKET等待&#xff0c;在网上找了一下资料。其中有篇一个SQL Server专栏作家的文章不错&#xff0c;也解决了我的一些疑问&#xff0c;就翻译在这里。 翻译整理仅用于传播资讯之目的。 原文出处&#xff1a;http://blog.sqlauthori…

整合 nginx与php配置

nginx本身并不处理动态请求&#xff0c;它会通过fastcgi把请求转发给php&#xff0c;php处理完生成静态页面再由nginx处理。PHP-FPM也是一个第三方的FastCGI进程管理器&#xff0c;它是作为PHP的一个补丁来开发的&#xff0c;在安装的时候也需要和PHP源码一起编译&#xff0c;也…

js 原生开发:实现页面带参跳转:从传参到接参,封装方法,实现一行代码精准接参(可传对象)iEieie

目前知道两种方法 1.通过地址栏的跳转链接带参 index.html <!DOCTYPE html> <html lang"zh"><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"ieedge"><title></t…

Visual C#两分钟搭建BHO IE钩子

微软在1997年正式推出Browser Helper Object (BHO), 使程序员能够更好的对IE进行二次开发和操作. 在通过编写BHO程序数月后, 我希望把我的一些经验告诉才开始的同志, 避免走一些弯路. 我本人是非常喜欢C的. 因为C对内存直接操作的方式可以节省非常多的内存损耗, 也更快一些. 但…

最大的Redis集群:新浪Redis集群揭秘

前言 Tape is Dead&#xff0c;Disk is Tape&#xff0c;Flash is Disk&#xff0c;RAM Locality is King. — Jim Gray Redis不是比较成熟的Memcache或者Mysql的替代品&#xff0c;是对于大型互联网类应用在架构上很好的补充。现在有越来越多的应用也在纷纷基于Redis做架…