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 中的类和闭包
Jan 08 Javascript
javascript下判断一个元素是否存在的代码
Mar 05 Javascript
js最简单的拖拽效果实现代码
Sep 24 Javascript
基于jquery的修改当前TAB显示标题的代码
Dec 11 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
Jun 24 Javascript
jQuery实现带动画效果的多级下拉菜单代码
Sep 08 Javascript
详解node.js平台下Express的session与cookie模块包的配置
Apr 26 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
Aug 26 Javascript
vue-cli和v-charts实现可视化图表过程解析
Oct 08 Javascript
JS中的变量作用域(console版)
Jul 18 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
Jul 23 Javascript
原生JS实现音乐播放器
Jan 26 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 cli换行示例
2014/04/22 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
smarty中常用方法实例总结
2015/08/07 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
Jquery 实现table样式的设定
2015/01/28 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
2020/04/16 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
2020/03/07 Javascript
Python3基础之基本数据类型概述
2014/08/13 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
keras打印loss对权重的导数方式
2020/06/10 Python
python如何支持并发方法详解
2020/07/25 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
班主任工作年限证明
2014/01/12 职场文书
自动化毕业生专业自荐书范文
2014/02/04 职场文书
护理专业自荐书
2014/06/04 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
小学教师年度个人总结
2015/02/05 职场文书
教师个人成长总结
2015/02/11 职场文书
医院病假条范文
2015/08/17 职场文书