转自:http://blog.csdn.net/zk437092645/article/details/8745647

用来把文件读入内存,并且读取文件中的数据。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接口的使用

    1. <script type="text/javascript">
    2. var result=document.getElementById("result");
    3. var file=document.getElementById("file");
    4. //判断浏览器是否支持FileReader接口
    5. if(typeof FileReader == 'undefined'){
    6. result.InnerHTML="<p>你的浏览器不支持FileReader接口!</p>";
    7. //使选择控件不可操作
    8. file.setAttribute("disabled","disabled");
    9. }
    10. function readAsDataURL(){
    11. //检验是否为图像文件
    12. var file = document.getElementById("file").files[0];
    13. if(!/image\/\w+/.test(file.type)){
    14. alert("看清楚,这个需要图片!");
    15. return false;
    16. }
    17. var reader = new FileReader();
    18. //将文件以Data URL形式读入页面
    19. reader.readAsDataURL(file);
    20. reader.onload=function(e){
    21. var result=document.getElementById("result");
    22. //显示文件
    23. result.innerHTML='<img src="' + this.result +'" alt="" />';
    24. }
    25. }
    26. function readAsBinaryString(){
    27. var file = document.getElementById("file").files[0];
    28. var reader = new FileReader();
    29. //将文件以二进制形式读入页面
    30. reader.readAsBinaryString(file);
    31. reader.onload=function(f){
    32. var result=document.getElementById("result");
    33. //显示文件
    34. result.innerHTML=this.result;
    35. }
    36. }
    37. function readAsText(){
    38. var file = document.getElementById("file").files[0];
    39. var reader = new FileReader();
    40. //将文件以文本形式读入页面
    41. reader.readAsText(file);
    42. reader.onload=function(f){
    43. var result=document.getElementById("result");
    44. //显示文件
    45. result.innerHTML=this.result;
    46. }
    47. }
    48. </script>
    49. <p>
    50. <label>请选择一个文件:</label>
    51. <input type="file" id="file" />
    52. <input type="button" value="读取图像" onclick="readAsDataURL()" />
    53. <input type="button" value="读取二进制数据" onclick="readAsBinaryString()" />
    54. <input type="button" value="读取文本文件" onclick="readAsText()" />
    55. </p>
    56. <div id="result" name="result"></div>

FileReader 基本介绍的更多相关文章

  1. 字符输入流_Reader类&FileReader类介绍和字符输入读取字符数据

    java.io.Reader:字符输入流的最顶层父类,其中定义了一些共性的成员方法,是一个抽象类共性的成员方法 int read() 读取单个字符并返回 int read(char[] cbuf) 将 ...

  2. [HTML5] FileReader对象

    写在前面 前一篇文章介绍了HTML5中的Blob对象(详情戳这里),从中了解到Blob对象只是二进制数据的容器,本身并不能操作二进制,故本篇将对其操作对象FileReader进行介绍. FileRea ...

  3. Java笔记--File,FileInputStream,FileReader,InputStreamReader,BufferedReader 的使用和区别

    转自:http://hi.baidu.com/danghj/item/0ef2e2c4ab95af7489ad9e39 参考资料:  < core java > 12 章 使用 Java ...

  4. FileInputStream(字节流)与fileReader(字符流) 的区别

    FileInputStream 类 1 ) FileInputStream 类介绍: 以字节为单位的流处理.字节序列:二进制数据.与编码无关,不存在乱码问题. FileInputStream 类的主要 ...

  5. File,FileInputStream,FileReader,InputStreamReader,BufferedReader 的使用和区别

    1 ) File 类介绍 File 类封装了对用户机器的文件系统进行操作的功能.例如,可以用 File 类获得文件上次修改的时间移动, 或者对文件进行删除.重命名.换句话说,流类关注的是文件内容,而 ...

  6. (转)Java 之 FileReader FileInputStream InputStreamReader BufferedReader 作用与区别

    Java 之 FileReader FileInputStream InputStreamReader BufferedReader 作用与区别 ava.io下面有两个抽象类:InputStream和 ...

  7. Java 之 FileReader FileInputStream InputStreamReader BufferedReader 作用与区别

    ava.io下面有两个抽象类:InputStream和ReaderInputStream是表示字节输入流的所有类的超类Reader是用于读取字符流的抽象类InputStream提供的是字节流的读取,而 ...

  8. 前端H5中JS用FileReader对象读取blob对象二进制数据,文件传输

    HTML5中的Blob对象只是二进制数据的容器,本身并不能操作二进制,故本篇将对其操作对象FileReader进行介绍. FileReader FileReader主要用于将文件内容读入内存,通过一系 ...

  9. java----FileInputStream类与FileReader类的区别(转)

    FileInputStream类与FileReader类的区别:两个类的构造函数的形式和参数都是相同的,参数为File对象或者表示路径的String,它们到底有何区别呢? Readers and W ...

随机推荐

  1. SqlSever2005 一千万条以上记录分页数据库优化经验总结

    http://www.cnblogs.com/jirigala/archive/2010/11/03/1868011.html 待测试???

  2. 【题解】【排列组合】【素数】【Leetcode】Unique Paths

    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...

  3. Guava 的学习

    https://zhuanlan.zhihu.com/p/20637960 java.util jooq guavanettyminajodadubbobatchlucenceactivitiquar ...

  4. c#实现高精度四舍五入

    /// <summary>        /// 實現數據的四捨五入        /// </summary>        /// <param name=" ...

  5. OpenCV: Canny边缘检测算法原理及其VC实现详解(转载)

    原文地址:http://blog.csdn.net/likezhaobin/article/details/6892176 原文地址:http://blog.csdn.net/likezhaobin/ ...

  6. webrtc编译之libcommonaudio

    [170/1600] CXX obj/webrtc/common_audio/common_audio.audio_util.o[171/1600] CXX obj/webrtc/common_aud ...

  7. 转:SQL:外连接on条件与where条件的区别

    原文地址:http://hi.baidu.com/benben1006/blog/item/187deb77bc0e5319b151b974.html 数据库在通过连接两张或多张表来返回记录时,都会生 ...

  8. PHP避免刷新页面重复提交

    PHP避免刷新页面重复提交 2013-07-09 15:27 匿名 | 浏览 3567 次 编程语言 情景:从html提交数据到x.php 在x.php中$_POST数据写库并且显示,当x.php刷新 ...

  9. 骑士问题(knight) (BFS)

    题目描述 在一个标准8×8的国际象棋棋盘上,棋盘中有些格子可能是有障碍物的.已知骑士的初始位置和目标位置,你的任务是计算出骑士最少需要多少步可以从初始位置到达目标位置.有障碍物的格子当然不可以到达. ...

  10. phpwind8.7升级9.0.1过程(四)20130207升级到20141228

    每一次升级前都要注意备份 1.网站根目录的所有文件 2.网站的数据库 根据phpwind官方教程 更新到20130702版本成功并备份 更新到20140428版本成功并备份 20141228版本的更新 ...