现在,在实现前端图片即时预览,可以说是一件很简单的事情了。

我们只需要用file对象和FileReader对象,既可以轻松实现,无需下载类库。
HTML代码
<!DOCTYPE html> <html> <body> <img src=""> <form> <input type="file" name="image" /> </form> </body> </html>
先来说说input,input这个元素,具有一个files属性,该属性是一个filelist对象,是file对象的集合。
你可以通过input.files[0]的语法形式拿到这个file对象,不过遗憾的是,这个对象仅仅包含了用户选择的文件的相关信息,如文件名,大小,类型,最后修改时间等,并不直接提供文件的数据。
程序员只能通过这些信息对用户选择的文件进行一些限制。
所以,我们要使用另一个对象FileReader来读取到用户选择的文件的数据
我们初始化一个FileReader对象
var x=new FileReader;
这是一个初始化完成的FileReader对象具有的一些属性和支持的事件
类似于Ajax,FileReader提供了readyState来查看读取的状态,不过并没有什么卵用
因为FileReader还提供了onloadend这样的事件,来处理数据读取完成后该干些什么,onprogress是最有趣的,只要在读取数据,那么这个事件会被不停的触发,可以实现那种进度条效果。
还有一个极其重要的属性result,初始化完成时,该值是null,当读取数据后,该值就是所获得的数据。
接下来,我们就可以使用这个对象读取用户选择的图片了,没有错就是这么简单
当用户选择了某一个文件时,就会在input上触发change事件,这意味着我们可以开始读取数据了
document.forms[0].elements[0].onchange=function(){
x.readAsDataURL(this.files[0]);
}
readASDateURL这个方法,可以读取一个file对象,并把数据以base64的格式填充到FileReader对象中的result属性中去。
当数据读取完毕,就会触发onloadend事件,在这个事件中,就可以把数据填到img标签中去
x.onloadend=function(){
document.images[0].src=this.result;
}
完整版代码
<!DOCTYPE html>
<html>
<body>
<img src="">
<form>
<input type="file" name="image" />
</form>
<script type="text/javascript">
var x=new FileReader;
document.forms[0].elements[0].onchange=function(){
x.readAsDataURL(this.files[0]);
}
x.onloadend=function(){
document.images[0].src=this.result;
}
</script>
</body>
</html>
当然,这里只是一个小小的Demo,仅仅实现了本地预览,抛砖引玉,你还可以在此基础上轻松实现对上传文件的一些判断和限制,或者是UI上的提升。
FileReader的能力并不止步于此,不仅仅有readASDataURL这种方法。
不仅是图片,音乐,视频都可以实现对于的本地预览,只要把result属性的值,赋值给对应的audio或video标签的src属性即可,不过因为内存限制,读取视频往往失败。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js前端图片上传即时预览
# js图片上传预览
# js上传预览
# AngularJS实现图片上传和预览功能的方法分析
# js图片上传的封装代码
# js实现图片上传预览原理分析
# JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
# ajax +NodeJS 实现图片上传实例
# JS实现图片上传多次上传同一张不生效的处理方法
# 可以实现
# 中去
# 就可以
# 的是
# 是一个
# 有什么
# 就会
# 在这个
# 你可以
# 可以说
# 只需
# 会在
# 你还
# 些什么
# 这是一个
# 我们可以
# 要把
# 抛砖引玉
# 很简单
# 要用
相关文章:
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
常州自助建站工具推荐:低成本搭建与模板选择技巧
淘宝制作网站有哪些,淘宝网官网主页?
如何在宝塔面板创建新站点?
已有域名和空间,如何快速搭建网站?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
5种Android数据存储方式汇总
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
如何通过VPS建站无需域名直接访问?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
建站主机选购指南:核心配置优化与品牌推荐方案
C#如何在一个XML文件中查找并替换文本内容
,购物网站怎么盈利呢?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
上海网站制作开发公司,上海买房比较好的网站有哪些?
制作表格网站有哪些,线上表格怎么弄?
公司门户网站制作流程,华为官网怎么做?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
制作企业网站建设方案,怎样建设一个公司网站?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
香港网站服务器数量如何影响SEO优化效果?
长沙做网站要多少钱,长沙国安网络怎么样?
郑州企业网站制作公司,郑州招聘网站有哪些?
建站之星下载版如何获取与安装?
湖北网站制作公司有哪些,湖北清能集团官网?
建站之星收费标准详解:套餐费用及年费价格表一览
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
C++如何编写函数模板?(泛型编程入门)
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
如何制作网站标识牌,动态网站如何制作(教程)?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何在建站主机中优化服务器配置?
存储型VPS适合搭建中小型网站吗?
建站之星代理如何优化在线客服效率?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
名字制作网站免费,所有小说网站的名字?
高防服务器租用首荐平台,企业级优惠套餐快速部署
jQuery 常见小例汇总
如何高效搭建专业期货交易平台网站?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
制作网站外包平台,自动化接单网站有哪些?
TestNG的testng.xml配置文件怎么写
微信小程序 五星评分(包括半颗星评分)实例代码
*请认真填写需求信息,我们会在24小时内与您取得联系。