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 相关文章推荐
图片按比例缩放函数
Jun 26 Javascript
基于jquery自己写tab滑动门(通用版)
Oct 30 Javascript
关于JavaScript中的关联数组分析
Apr 09 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
Dec 15 Javascript
jquery实现的V字形显示效果代码
Oct 27 Javascript
JS组件Bootstrap Select2使用方法解析
May 30 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
Jun 21 Javascript
浅谈javascript中执行环境(作用域)与作用域链
Dec 08 Javascript
浅谈webpack对样式的处理
Jan 05 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
Sep 17 Javascript
详解Vue 单文件组件的三种写法
Feb 19 Javascript
深度解读vue-resize的具体用法
Jul 08 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调用Twitter的RSS的实现代码
2010/03/10 PHP
php实现的返回数据格式化类实例
2014/09/22 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
用 JSON 处理缓存
2007/04/27 Javascript
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
2018/02/22 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
JS中自定义事件的使用与触发操作实例分析
2019/11/01 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
vue实现移动端H5数字键盘组件使用详解
2020/08/25 Javascript
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
Python 制作糗事百科爬虫实例
2016/09/22 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
大学生职业生涯规划范文
2013/12/31 职场文书
幼儿园消防安全制度
2014/01/26 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
离婚答辩状范文
2015/05/22 职场文书
PO模式在selenium自动化测试框架的优势
2022/03/20 Python