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 相关文章推荐
用Javascript实现Sleep暂停功能代码
Sep 03 Javascript
Js-$.extend扩展方法使方法参数更灵活
Jan 15 Javascript
浅谈JavaScript中的Math.atan()方法的使用
Jun 14 Javascript
jQuery入门基础知识学习指南
Aug 14 Javascript
js实现可旋转的立方体模型
Oct 16 Javascript
jQuery实现自动调用和触发某个事件的方法
Nov 18 Javascript
实例学习JavaScript读取和写入cookie
Jan 29 Javascript
说说如何利用 Node.js 代理解决跨域问题
Apr 22 Javascript
封装一下vue中的axios示例代码详解
Feb 16 Javascript
element-ui tree结构实现增删改自定义功能代码
Aug 31 Javascript
超详细小程序定位地图模块全系列开发教学
Nov 24 Javascript
JS函数式编程实现XDM一
Jun 16 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实现小型站点广告管理(修正版)
2006/10/09 PHP
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
解析htaccess伪静态的规则
2013/06/18 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
javascript 动态生成私有变量访问器
2009/12/06 Javascript
jquery tab插件制作实现代码
2010/06/22 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
微信小程序 侧滑删除(左滑删除)
2017/05/23 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
2019/08/26 Javascript
es6中使用map简化复杂条件判断操作实例详解
2020/02/19 Javascript
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Python实现模拟时钟代码推荐
2015/11/08 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
python中pip的安装与使用教程
2018/08/10 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
python使用正则来处理各种匹配问题
2019/12/22 Python
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
《穷人》教学反思
2014/04/08 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
借钱欠条怎么写
2015/07/03 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS