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 相关文章推荐
无缝滚动改进版支持上下左右滚动(封装成函数)
Dec 04 Javascript
jquery使用$(element).is()来判断获取的tagName
Aug 24 Javascript
JS+CSS相对定位实现的下拉菜单
Oct 06 Javascript
AngularJS基础 ng-src 指令简单示例
Aug 03 Javascript
通过jquery实现页面的动画效果(实例代码)
Sep 18 Javascript
遍历json获得数据的几种方法小结
Jan 21 Javascript
jQuery实现标签页效果实战(4)
Feb 08 Javascript
Bootstrap缩略图与警告框学习使用
Feb 08 Javascript
vue 组件使用中的一些细节点
Apr 25 Javascript
Vue自定义全局Toast和Loading的实例详解
Apr 18 Javascript
微信小程序系列之自定义顶部导航功能
May 21 Javascript
JavaScript实现简单动态表格
Dec 02 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实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
js正文内容高亮效果的实现方法
2013/06/30 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
微信小程序本作用域下调用全局JS详解及实例
2017/02/22 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
Python基于PycURL实现POST的方法
2015/07/25 Python
python通过opencv实现批量剪切图片
2017/11/13 Python
tensorflow输出权重值和偏差的方法
2018/02/10 Python
Python设计模式之外观模式实例详解
2019/01/17 Python
Django中的静态文件管理过程解析
2019/08/01 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
个性车贴标语
2014/06/24 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
投资申请报告
2015/05/19 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS