FileReader - 用于异步读取存用户的文件(或原始数据缓冲区)内容
FileReader
对象允许 Web 应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)内容。可以使用 File
或 Blob
对象,来指定要读取的文件或数据。
文件对象可以是来自用户通过 <input>
元素选择文件后返回的 FileList
对象,或者是来自拖放操作产生的 <datatransfer>
对象,或者是来自 HTMLCanvasElement
的 mozGetAsFile()
API。
构造函数
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
对象。