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实现立方体自转效果
Mar 01 HTML / CSS
利用纯CSS3实现tab选项卡切换示例代码
Sep 21 HTML / CSS
详解CSS3选择器:nth-child和:nth-of-type之间的差异
Sep 18 HTML / CSS
利用 CSS3 实现的无缝轮播功能代码
Sep 25 HTML / CSS
详解HTML5中的标签
Jun 19 HTML / CSS
HTML5+CSS3绘制锯齿状的矩形
Mar 01 HTML / CSS
配置H5的滚动条样式的示例代码
Mar 09 HTML / CSS
Html5实现首页动态视频背景的示例代码
Sep 25 HTML / CSS
div或img图片高度随宽度自适应的方法
Feb 06 HTML / CSS
详解HTML5.2版本带来的修改
May 06 HTML / CSS
CSS实现两列布局的N种方法
Aug 02 HTML / CSS
CSS实现鼠标悬浮动画特效
May 07 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
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
PHP运行模式的深入理解
2013/06/03 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
JavaScript 对象模型 执行模型
2009/12/06 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
python实现sublime3的less编译插件示例
2014/04/27 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
在Python的Django框架中编写编译函数
2015/07/20 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
Python进程间通信之共享内存详解
2017/10/30 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
python多线程使用方法实例详解
2019/12/30 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
实习生自我鉴定
2013/12/12 职场文书
最热门的自我评价
2013/12/30 职场文书
早读迟到检讨书
2014/01/24 职场文书
入党转正申请报告
2015/05/15 职场文书