HTML5中FileReader接口使用方法实例详解


Posted in HTML / CSS onAugust 26, 2017

用来把文件读入内存,并且读取文件中的数据。FileReader接口提供了一个异步API,使用该API可以在浏览器主线程中异步访问文件系统,读取文件中的数据。到目前文职,只有FF3.6+和Chrome6.0+实现了FileReader接口。

1、FileReader接口的方法

FileReader接口有4个方法,其中3个用来读取文件,另一个用来中断读取。无论读取成功或失败,方法并不会返回读取结果,这一结果存储在result属性中。

FileReader接口的方法

方法名 参数 描述
readAsBinaryString file 将文件读取为二进制编码
readAsText file,[encoding] 将文件读取为文本
readAsDataURL file 将文件读取为DataURL
abort (none) 终端读取操作

2、FileReader接口事件

FileReader接口包含了一套完整的事件模型,用于捕获读取文件时的状态。

FileReader接口的事件

事件 描述
onabort 中断
onerror 出错
onloadstart 开始
onprogress 正在读取
onload 成功读取
onloadend 读取完成,无论成功失败

3、FileReader接口的使用

<script type="text/javascript">  
var result=document.getElementById("result");  
var file=document.getElementById("file");  
//判断浏览器是否支持FileReader接口  
if(typeof FileReader == 'undefined'){  
    result.InnerHTML="<p>你的浏览器不支持FileReader接口!</p>";  
    //使选择控件不可操作  
    file.setAttribute("disabled","disabled");  
}  
function readAsDataURL(){  
    //检验是否为图像文件  
    var file = document.getElementById("file").files[0];  
    if(!/image\/\w+/.test(file.type)){  
        alert("看清楚,这个需要图片!");  
        return false;  
    }  
    var reader = new FileReader();  
    //将文件以Data URL形式读入页面  
    reader.readAsDataURL(file);  
    reader.onload=function(e){  
        var result=document.getElementById("result");  
        //显示文件  
        result.innerHTML='<img src="' + this.result +'" alt="" />';  
    }  
}  
function readAsBinaryString(){  
    var file = document.getElementById("file").files[0];  
    var reader = new FileReader();  
    //将文件以二进制形式读入页面  
    reader.readAsBinaryString(file);  
    reader.onload=function(f){  
        var result=document.getElementById("result");  
        //显示文件  
        result.innerHTML=this.result;  
    }  
}  
function readAsText(){  
    var file = document.getElementById("file").files[0];  
    var reader = new FileReader();  
    //将文件以文本形式读入页面  
    reader.readAsText(file);  
    reader.onload=function(f){  
        var result=document.getElementById("result");  
        //显示文件  
        result.innerHTML=this.result;  
    }  
}  
</script>  
<p>  
    <label>请选择一个文件:</label>  
    <input type="file" id="file" />  
    <input type="button" value="读取图像" onclick="readAsDataURL()" />  
    <input type="button" value="读取二进制数据" onclick="readAsBinaryString()" />  
    <input type="button" value="读取文本文件" onclick="readAsText()" />  
</p>  
<div id="result" name="result"></div>

总结

以上所述是小编给大家介绍的HTML5中FileReader接口使用方法实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

HTML / CSS 相关文章推荐
CSS3转换功能transform主要属性值分析及实现分享
May 06 HTML / CSS
css3 position fixed固定居中问题解决方案
Aug 19 HTML / CSS
css3选择器基本介绍
Dec 15 HTML / CSS
一款基于css3麻将筛子3D翻转特效的实例教程
Dec 31 HTML / CSS
CSS3中Animation属性的使用详解
Aug 06 HTML / CSS
CSS实现进度条和订单进度条的示例
Nov 05 HTML / CSS
canvas像素画板的实现代码
Nov 21 HTML / CSS
html特殊符号示例 html特殊字符编码对照表
Jan 14 HTML / CSS
用HTML5制作一个简单的桌球游戏的教程
May 12 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
Oct 23 HTML / CSS
LocalStorage记住用户和密码功能
Jul 24 HTML / CSS
详解html5 postMessage解决跨域通信的问题
Aug 17 HTML / CSS
html5使用canvas实现图片下载功能的示例代码
Aug 26 #HTML / CSS
html5+CSS3+JS实现七夕言情功能代码
Aug 28 #HTML / CSS
html5使用html2canvas实现浏览器截图的示例
Aug 31 #HTML / CSS
前端面试必备之html5的新特性
Sep 05 #HTML / CSS
html5仿支付宝密码框的实现代码
Sep 06 #HTML / CSS
HTML5 本地存储实现购物车功能
Sep 07 #HTML / CSS
HTML5 FormData 方法介绍以及实现文件上传示例
Sep 12 #HTML / CSS
You might like
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
再论Javascript下字符串连接的性能
2011/03/05 Javascript
JQuery选择器特辑 详细小结
2012/05/14 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
javascript-表格排序(降序/反序)实现介绍(附图)
2013/05/30 Javascript
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
2013/07/31 Javascript
Javascript 命名空间模式
2013/11/01 Javascript
jQuery Ajax异步处理Json数据详解
2013/11/05 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
Angularjs 滚动加载更多数据
2016/03/17 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
python 图片验证码代码
2008/12/07 Python
教你安装python Django(图文)
2013/11/04 Python
python实现简单温度转换的方法
2015/03/13 Python
Python脚本在Appium库上对移动应用实现自动化测试
2015/04/17 Python
Python 文件操作的详解及实例
2017/09/18 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
python生成器与迭代器详解
2019/01/01 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
党支部书记先进事迹
2014/01/17 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
Redis的字符串是如何实现的
2021/10/24 Redis