图片上传前预览

博客介绍了实现图片预览功能的简便方法,即使用允许Web应用程序异步读取用户计算机文件内容的接口。先建好HTML页面,测试浏览器是否支持该接口,支持后编写showimgfun()方法,还介绍了FileReader的相关事件,最后进行效果测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前为了实现这个图片预览的功能,我在选择图片之后就将其添加到项目中,再查询出来(捂脸),后来发现有更简单方便的方法:使用FileReader接口

FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对 象指定要读取的文件或数据。

我们先建好HTML页面

<input type="file" name="addimg" onchange="showimgfun(this)" id="addimg" />
<img id="showimg" style="max-height: 600px;max-width: 600px;margin-top: 20px;" />

在使用FileReader之前,先测一下当前浏览器是否支持FileReader接口

if(typeof FileReader == 'undefined'){
	alert("当前浏览器不支持FileReader接口");
}

在这里插入图片描述

浏览器没有提示,说明是支持的,然后就可以开始写showimgfun()方法了

function showimgfun(obj){
	var file = obj.files[0];
	console.log(obj);console.log(file);

我们可以console看一下传进来的值
在这里插入图片描述

	var reader = new FileReader();//创建FileReader对象
	reader.onload = function(e){
		//onload是读取成功的事件
		var img = document.getElementById('showimg');
		//将返回的结果赋值给img标签的src属性
		img.src=e.target.result;
		//target可以返回事件的目标节点
	}
	 reader.readAsDataURL(file);//readAsDataURL方法可以将读取到的文件编码成Data URL
}

onload 是当FileReader读取成功后触发的事件,除此之外还有以下几个事件:

- onloadstart:开始读取时触发
- onprogress:读取中触发
- onabort:读取中断时触发
- onerror:读取出现异常时触发

测试一下效果
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值