FileReader - 用于异步读取存用户的文件(或原始数据缓冲区)内容

FileReader 对象允许 Web 应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)内容。可以使用 FileBlob 对象,来指定要读取的文件或数据。

文件对象可以是来自用户通过 <input> 元素选择文件后返回的 FileList 对象,或者是来自拖放操作产生的 <datatransfer> 对象,或者是来自 HTMLCanvasElementmozGetAsFile() API。

注意: 此特性在 Web Worker 中可用。

构造函数

FileReader()

返回一个新构造的 FileReader

有关详细信息和示例,请参阅使用 Web 应用程序中的文件

属性

FileReader.error 只读

一个 DOMException 表示读取文件时发生的错误。

FileReader.readyState 只读

一个数字,表示 FileReader 的状态。它是以下的一个值:

EMPTY 0 尚未加载任何数据。
LOADING 1 目前正在加载数据。
DONE 2 整个读取请求已完成。

FileReader.result 只读

文件的内容。该属性仅在读取操作完成后有效,并且数据的格式取决于用于启动读取操作的方法。

事件处理程序

FileReader.onabort

abort 事件的处理程序。每次读取操作中止时都会触发该事件。

FileReader.onerror

error 事件的处理程序。每次读取操作遇到错误时都会触发该事件。

FileReader.onload

load 事件的处理程序。每次成功完成读取操作时都会触发该事件。

FileReader.onloadstart

loadstart 事件的处理程序。每次读数开始时都会触发该事件。

FileReader.onloadend

loadend 事件的处理程序。每次读取操作完成(成功或失败)时都会触发该事件。

FileReader.onprogress

progress事件的处理程序。读取 Blob 内容时会触发该事件。

FileReader 继承自 EventTarget 时,也可以使用 addEventListener 方法监听所有这些事件。

方法

FileReader.abort()

中止读取操作。返回时,readyState 将为 DONE

FileReader.readAsArrayBuffer()

开始读取指定的 Blob 的内容,一旦完成,result 属性包含表示文件数据的 ArrayBuffer

FileReader.readAsBinaryString()

开始读取指定的 Blob 的内容,一旦完成,result 属性将包含文件中的原始二进制数据作为字符串。

FileReader.readAsDataURL()

开始读取指定的 Blob 的内容,一旦完成,result 属性包含一个表示文件数据的 data: URL。

FileReader.readAsText()

开始读取指定的 Blob 的内容,一旦完成,result 属性将文件的内容包含为文本字符串。

规范

规范 状态 备注
File API
FileReader 的定义
工作草案 初始定义

桌面浏览器兼容性

特性 Chrome Edge Firefox Internet Explorer Opera Safari
基础支持 7 支持 3.61 10 11 6
Available in workers 支持 支持 46 不支持 11 不支持
abort 7 支持 3.6 10 11 6
error 7 支持 3.6234 106 11 66
onabort 7 支持 3.6 10 11 6
onerror 7 支持 3.6 10 11 6
onload 7 支持 3.6 10 11 6
onloadend 7 支持 3.6 10 11 6
onprogress 7 支持 3.6 10 11 6
readyState 7 支持 3.6 10 11 6
readAsArrayBuffer 7 支持 3.6 10 12 6
readAsBinaryString 7 支持 3.6 10 11 6
readAsDataURL 7 支持 3.6 10 11 6
readAsText 7 支持 3.6 10 11 6
result 7 支持 3.6 10 11 6

移动浏览器兼容性

特性 Android Chrome for Android Edge mobile Firefox for Android IE mobile Opera Android iOS Safari
基础支持 未知 支持 支持 32 未知 11 6.1
Available in workers 支持 支持 支持 46 未知 11 不支持
abort 未知 支持 支持 32 未知 11 6.1
error 未知 支持 支持 3245 未知 11 6.16
onabort 未知 支持 支持 32 未知 11 6.1
onerror 未知 支持 支持 32 未知 11 6.1
onload 未知 支持 支持 32 未知 11 6.1
onloadend 未知 支持 支持 32 未知 11 6.1
onprogress 未知 支持 支持 32 未知 11 6.1
readyState 未知 支持 支持 32 未知 11 6.1
readAsArrayBuffer 未知 支持 支持 32 未知 12 6.1
readAsBinaryString 未知 支持 支持 32 未知 11 6.1
readAsDataURL 未知 支持 支持 32 未知 11 6.1
readAsText 未知 支持 支持 32 未知 11 6.1
result 未知 支持 支持 32 未知 11 6.1

1. 在 Firefox 4 之前,Blob 的参数原来是 File 对象。

2. 在 Firefox 13 之前,error 属性是一个 FileError 对象。

3. 从 Firefox 13 到 Firefox 58,error 属性返回了 DOMError 对象。

4. 从 Firefox 58 开始,error 属性时一个 DOMException 对象。

5. 从 Firefox 32 到 Firefox 58,error 属性是一个 DOMError 对象。

6. error 属性是一个 error 对象。

相关链接