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 相关文章推荐
什么是 AngularJS?AngularJS简介
Dec 06 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
May 03 Javascript
浅谈JQ中mouseover和mouseenter的区别
Sep 13 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
Feb 05 Javascript
js实现常见的工具条效果
Mar 02 Javascript
详解微信小程序 相对定位和绝对定位
May 11 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
Aug 29 Javascript
vue.js element-ui validate中代码不执行问题解决方法
Dec 18 Javascript
JavaScript 中的12种循环遍历方法【总结】
May 31 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
Jul 10 Javascript
实例讲解v-if和v-show的区别
Jan 31 Javascript
js中console在一行内打印字符串和对象的方法
Sep 10 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使用Cookie实现和用户会话的方法
2015/01/21 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
PHP进阶学习之类的自动加载机制原理分析
2019/06/18 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
学习ExtJS table布局
2009/10/08 Javascript
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
2009/11/12 Javascript
关于js内存泄露的一个好例子
2013/12/09 Javascript
做好七件事帮你提升jQuery的性能
2014/02/06 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
Javascript非构造函数的继承
2015/04/27 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
2016/02/26 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
浅谈React高阶组件
2018/03/28 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
JavaScript 实现继承的几种方式
2021/02/19 Javascript
Python解析树及树的遍历
2016/02/03 Python
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
python实现简单银行管理系统
2019/10/25 Python
python -v 报错问题的解决方法
2020/09/15 Python
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
求职信模版
2013/11/30 职场文书
车间副主任岗位职责
2013/12/24 职场文书
团队精神的演讲稿
2014/05/14 职场文书
股份合作协议书
2014/09/10 职场文书
计划生育汇报材料
2014/12/26 职场文书
五四青年节活动总结
2015/02/10 职场文书
地球一小时活动总结
2015/02/27 职场文书
国王的演讲观后感
2015/06/03 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers
Python中Selenium对Cookie的操作方法
2021/07/09 Python
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android