JS+HTML5 FileReader实现文件上传前本地预览功能


Posted in Javascript onMarch 27, 2020

HTML5之FileReader的使用

HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型。

FileReader的使用方式非常简单,可以按照如下步骤创建FileReader对象并调用其方法:

1.检测浏览器对FileReader的支持

if(window.FileReader) { 
 var fr = new FileReader(); 
 // add your code here 
} 
else { 
 alert("Not supported by your browser!"); 
}

2. 调用FileReader对象的方法

FileReader 的实例拥有 4 个方法,其中 3 个用以读取文件,另一个用来中断读取。下面的表格列出了这些方法以及他们的参数和功能,需要注意的是 ,无论读取成功或失败,方法并不会返回读取结果,这一结果存储在 result属性中。

eadAsText:该方法有两个参数,其中第二个参数是文本的编码方式,默认值为 UTF-8。这个方法非常容易理解,将文件以文本方式读取,读取的结果即是这个文本文件中的内容。

readAsBinaryString:该方法将文件读取为二进制字符串,通常我们将它传送到后端,后端可以通过这段字符串存储文件。

readAsDataURL:这是例子程序中用到的方法,该方法将文件读取为一段以 data: 开头的字符串,这段字符串的实质就是 Data URL,Data URL是一种将小文件直接嵌入文档的方案。这里的小文件通常是指图像与 html 等格式的文件。

下面通过一个上传图片预览和带进度条上传来展示FileReader的使用。

<script type="text/javascript"> 
 function showPreview(source) { 
  var file = source.files[0]; 
  if(window.FileReader) { 
  var fr = new FileReader(); 
  fr.onloadend = function(e) { 
   document.getElementById("portrait").src = e.target.result; 
  }; 
  fr.readAsDataURL(file); 
  } 
 } 
 </script>
<input type="file" name="file" onchange="showPreview(this)" /> 
<img id="portrait" src="" width="70" height="75">
if(!/image\/\w+/.test(file.type)){ 
 alert("请确保文件为图像类型"); 
 return false; 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery优缺点分析说明
Jun 09 Javascript
JavaScript中的字符串操作详解
Nov 12 Javascript
jQuery控制TR显示隐藏的几种方法
Jun 18 Javascript
Extjs grid panel自带滚动条失效的解决方法
Sep 11 Javascript
Javascript进制转换实例分析
May 14 Javascript
Javascript刷新窗口方法小结
Oct 21 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
Jan 20 Javascript
Vue中正确使用jQuery的方法
Oct 30 jQuery
vue.js将时间戳转化为日期格式的实现代码
Jun 05 Javascript
解决layui中的form表单与button的点击事件冲突问题
Aug 15 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
Sep 05 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
Jan 19 Javascript
js学习总结_选项卡封装(实例讲解)
Jul 13 #Javascript
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 #jQuery
通过命令行生成vue项目框架的方法
Jul 12 #Javascript
微信小程序实现点击返回顶层的方法
Jul 12 #Javascript
使用AngularJS对表单提交内容进行验证的操作方法
Jul 12 #Javascript
JQuery EasyUI的一些常用组件
Jul 12 #jQuery
JavaScript严格模式下关于this的几种指向详解
Jul 12 #Javascript
You might like
PHP计划任务、定时执行任务的实现代码
2011/04/23 PHP
php错误、异常处理机制(补充)
2012/05/07 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
PHP实现生成唯一会员卡号
2015/08/24 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
JavaScript 继承详解(四)
2009/07/13 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
JavaScript判断IE版本型号
2015/07/27 Javascript
Bootstrap实现下拉菜单多级联动
2017/11/23 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
从零学Python之hello world
2014/05/21 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
python psutil库安装教程
2018/03/19 Python
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
logging level级别介绍
2020/02/21 Python
如何利用Python识别图片中的文字
2020/05/31 Python
python sleep和wait对比总结
2021/02/03 Python
python元组拆包实现方法
2021/02/28 Python
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
网络维护中文求职信
2014/01/03 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
三严三实学习心得体会
2014/10/13 职场文书
党内外群众意见范文
2015/06/02 职场文书
赞美教师的句子
2019/09/02 职场文书
Pytorch中Softmax和LogSoftmax的使用详解
2021/06/05 Python
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技