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的flexbox实现水平垂直居中与三列等高布局
Sep 12 HTML / CSS
CSS3 选择器 伪类选择器介绍
Jan 21 HTML / CSS
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
Feb 04 HTML / CSS
纯css3实现图片翻牌特效
Mar 10 HTML / CSS
css3 border旋转时的动画应用
Jan 22 HTML / CSS
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
Aug 18 HTML / CSS
免费获得微软MCSD证书赶快行动吧!
Nov 13 HTML / CSS
基于html5 canvas实现漫天飞雪效果实例
Sep 10 HTML / CSS
HTML5 Canvas中使用用路径描画圆弧
Jan 01 HTML / CSS
HTML5 Canvas之测试浏览器是否支持Canvas的方法
Jan 01 HTML / CSS
浅谈由position属性引申的css进阶讨论
May 25 HTML / CSS
浅析CSS在DevTools 中架构演变
Oct 05 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之第二天
2006/10/09 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
thinkPHP中钩子的两种配置调用方法详解
2016/11/11 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
js静态方法与实例方法分析
2011/07/04 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
Python中的装饰器用法详解
2015/01/14 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
python求质数列表的例子
2019/11/24 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
师范生实习个人的自我评价
2013/09/28 职场文书
求职简历中个人的自我评价
2013/12/25 职场文书
关于MybatisPlus配置双数据库驱动连接数据库问题
2022/01/22 Java/Android
vue3不同环境下实现配置代理
2022/05/25 Vue.js
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python