1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 通过JS中利用FileReader如何实现上传图片前本地预览功能

通过JS中利用FileReader如何实现上传图片前本地预览功能

时间:2021-08-06 15:28:27

相关推荐

通过JS中利用FileReader如何实现上传图片前本地预览功能

web前端|js教程

javascript,FileReader,利用

web前端-js教程

FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。下面通过本文给大家介绍JS中利用FileReader实现上传图片前本地预览功能,需要的朋友参考下

网页表单源码,ubuntu如何查看电量,tomcat404虚拟路径,快速制作爬虫,mq 消息队列php,陕西seo排名优化需要多少钱lzw

引子

php书法艺术站源码,ubuntu 树莓派桌面,爬虫获取网站标题,引入 php,seo-50lzw

平时做图片上传预览时如果没有特殊的要求就直接先把图片传到后台去,成功之后拿到URL再渲染到页面上,这样做在图片比较小的时候没什么问题,大一点的话就会比较慢才能看到预览了,而且还产生了垃圾文件,所以比较好的是上传之前先在本地预览一下。

qq充值中心钓鱼源码,vscode粉红主题,ubuntu废了,tomcat实例启动,c语言sqlite创建表,dtcms在线留言插件,js h5前端框架,普通人怎么反爬虫,php 两个时间的时间差,惠阳seo优化公司,wordpress视频网站模板,网页播放器源码mp4,zencart 订单邮件模板lzw

之前做项找插件的时候就知道纯前端可以实现图片本地预览,可今天面试的时候被问到时竟然一脸懵逼,然后竟然无意中就在电脑桌面发现了实现的demo,然后根据demo查了一下API,稍微总结下:

首先得拿到File对象

当用input标签上传图片时event对象中会包含file对象的一个集合

event.target.files

核心是FileReader对象

根据MDN上的说法:

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

首先要作为构造函数得到一个FileReader的实例对象

var freader = new FileReader();

利用readAsDataURL()方法读取指定的内容

freader.readAsDataURL(file);

最后就是一个事件处理,相当于监控读取进度,我们这里是当读取完成时渲染图片,所以用onload

freader.onload = function(e) { console.log(e); myImg.setAttribute(src, e.target.result); }

这里架加载完成之后最终得到的是一个base64编码的src地址,具体为什么下次查清楚了再专门写篇关于base64编码的文章

完整代码

Documentfunction changImg(e){ var myImg = document.getElementById(myImg); for (var i = 0; i < e.target.files.length; i++) { var file = e.target.files[i]; console.log(file); if (!(/^image\/.*$/i.test(file.type))) { continue; //不是图片 就跳出这一次循环 } //实例化FileReader API var freader = new FileReader(); freader.readAsDataURL(file); freader.onload = function(e) { console.log(e); myImg.setAttribute(src, e.target.result); } } }

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

如何学习node中process以及child_process模块(详细教学)

通过jQuery+JSONP中跨域请求的方法(详细教学)

通过在Vue2.0中实现http请求以及loading展示

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。