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 相关文章推荐
表单的焦点顺序tabindex和对应enter键提交
Jan 04 Javascript
JS中捕获console.log()输出的方法
Apr 16 Javascript
简述AngularJS相关的一些编程思想
Jun 23 Javascript
去除html代码里面的script正则方法
May 19 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
Jan 23 Javascript
Angular实现双向折叠列表组件的示例代码
Nov 21 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
Feb 18 jQuery
spring+angular实现导出excel的实现代码
Feb 27 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
Jun 28 Javascript
vue 实现Web端的定位功能 获取经纬度
Aug 08 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
Dec 09 Javascript
vue cli3适配所有端方案的实现
Apr 13 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
详细讲解JS节点知识
2010/01/31 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
js实现select下拉框选择
2020/01/11 Javascript
js验证账户名是否重复
2020/05/26 Javascript
Python写入数据到MP3文件中的方法
2015/07/10 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
怎样在 Applet 中建立自己的菜单(MenuBar/Menu)?
2012/06/20 面试题
医学护理毕业生自荐信
2013/11/07 职场文书
小学毕业感言150字
2014/02/05 职场文书
春节联欢会策划方案
2014/05/16 职场文书
运动会横幅标语
2014/06/17 职场文书
班级团队活动方案
2014/08/14 职场文书
安全生产工作汇报
2014/10/28 职场文书
质量整改报告范文
2014/11/08 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
安全员岗位职责范本
2015/04/11 职场文书
学术会议领导致辞
2015/07/29 职场文书
领导离职感言
2015/08/03 职场文书
创业计划书之闲置物品置换中心
2019/12/25 职场文书
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android