FileReader
object lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using
File
or
Blob
objects to specify the file or data to read.
File objects may be obtained from a
FileList
对象,返回作为用户选择文件的结果使用
<input>
元素,来自拖放操作的
DataTransfer
对象,或来自
mozGetAsFile()
API 在
HTMLCanvasElement
.
Important note:
FileReader
is used to read file content from the user's (remote) system in secure ways only. It cannot be used to simply read a file by pathname from a file system. To read files by pathname in JavaScript, standard Ajax solutions should be used to do server-side file reading, with CORS permission if reading cross-domain.
FileReader()
FileReader
.
见 使用来自 Web 应用程序的文件 for details and examples.
FileReader.error
只读
DOMException
representing the error that occurred while reading the file.
FileReader.readyState
只读
FileReader
. This is one of the following:
EMPTY
|
0
|
No data has been loaded yet. |
LOADING
|
1
|
Data is currently being loaded. |
DONE
|
2
|
The entire read request has been completed. |
FileReader.result
只读
The file's contents. This property is only valid after the read operation is complete, and the format of the data depends on which of the methods was used to initiate the read operation.
FileReader.onabort
abort
event. This event is triggered each time the reading operation is aborted.
FileReader.onerror
error
event. This event is triggered each time the reading operation encounter an error.
FileReader.onload
load
event. This event is triggered each time the reading operation is successfully completed.
FileReader.onloadstart
loadstart
event. This event is triggered each time the reading is starting.
FileReader.onloadend
loadend
event. This event is triggered each time the reading operation is completed (either in success or failure).
FileReader.onprogress
progress
event. This event is triggered while reading a
Blob
内容。
As
FileReader
继承自
EventTarget
, all those events can also be listened for by using the
addEventListener
方法。
FileReader.abort()
readyState
将是
DONE
.
FileReader.readAsArrayBuffer()
Blob
, once finished, the
result
attribute contains an
ArrayBuffer
representing the file's data.
FileReader.readAsBinaryString()
Blob
, once finished, the
result
attribute contains the raw binary data from the file as a string.
FileReader.readAsDataURL()
Blob
, once finished, the
result
attribute contains a
data:
URL representing the file's data.
FileReader.readAsText()
Blob
, once finished, the
result
attribute contains the contents of the file as a text string. An optional encoding name can be specified.
监听这些事件使用
addEventListener()
或通过把事件监听器赋值给
on
eventname
特性为此接口。
abort
FileReader.abort()
.
onabort
特性。
error
onerror
特性。
load
onload
特性。
loadend
onloadend
特性。
loadstart
onloadstart
特性。
progress
onprogress
特性。
| 规范 | 状态 | 注释 |
|---|---|---|
|
文件 API
在该规范中的 FileReader 定义。 |
工作草案 | 初始定义 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
FileReader
|
Chrome 7 | Edge 12 |
Firefox
3.6
|
IE 10 | Opera 11 | Safari 6 | WebView Android ≤37 | Chrome Android 18 | Firefox Android 32 | Opera Android 11 | Safari iOS 6.1 | Samsung Internet Android 1.0 |
abort
|
Chrome 7 | Edge 12 | Firefox 3.6 | IE 10 | Opera 11 | Safari 6 | WebView Android Yes | Chrome Android Yes | Firefox Android 32 | Opera Android 11 | Safari iOS 6.1 | Samsung Internet Android Yes |
abort
event
|
Chrome Yes | Edge 12 | Firefox Yes | IE Yes | Opera Yes | Safari Yes | WebView Android Yes | Chrome Android Yes | Firefox Android Yes | Opera Android Yes | Safari iOS Yes | Samsung Internet Android Yes |
error
|
Chrome 7 | Edge 12 |
Firefox
3.6
|
IE
10
|
Opera 11 |
Safari
6
|
WebView Android Yes | Chrome Android Yes |
Firefox Android
32
|
Opera Android 11 |
Safari iOS
6.1
|
Samsung Internet Android Yes |
error
event
|
Chrome Yes | Edge 12 | Firefox Yes | IE Yes | Opera Yes | Safari Yes | WebView Android Yes | Chrome Android Yes | Firefox Android Yes | Opera Android Yes | Safari iOS Yes | Samsung Internet Android Yes |
load
event
|
Chrome Yes | Edge 12 | Firefox Yes | IE Yes | Opera Yes | Safari Yes | WebView Android Yes | Chrome Android Yes | Firefox Android Yes | Opera Android Yes | Safari iOS Yes | Samsung Internet Android Yes |
loadend
event
|
Chrome Yes | Edge 12 | Firefox Yes | IE Yes | Opera Yes | Safari Yes | WebView Android Yes | Chrome Android Yes | Firefox Android Yes | Opera Android Yes | Safari iOS Yes | Samsung Internet Android Yes |
loadstart
event
|
Chrome Yes | Edge 12 |
Firefox
79
|
IE Yes | Opera Yes | Safari Yes | WebView Android Yes | Chrome Android Yes | Firefox Android Yes | Opera Android Yes | Safari iOS Yes | Samsung Internet Android Yes |
onabort
|
Chrome 7 | Edge 12 | Firefox 3.6 | IE 10 | Opera 11 | Safari 6 | WebView Android Yes | Chrome Android Yes | Firefox Android 32 | Opera Android 11 | Safari iOS 6.1 | Samsung Internet Android Yes |
onerror
|
Chrome 7 | Edge 12 | Firefox 3.6 | IE 10 | Opera 11 | Safari 6 | WebView Android Yes | Chrome Android Yes | Firefox Android 32 | Opera Android 11 | Safari iOS 6.1 | Samsung Internet Android Yes |
onload
|
Chrome 7 | Edge 12 | Firefox 3.6 | IE 10 | Opera 11 | Safari 6 | WebView Android ≤37 | Chrome Android 18 | Firefox Android 32 | Opera Android 11 | Safari iOS 6.1 | Samsung Internet Android 1.0 |
onloadend
|
Chrome 7 | Edge 12 | Firefox 3.6 | IE 10 | Opera 11 | Safari 6 | WebView Android Yes | Chrome Android Yes | Firefox Android 32 | Opera Android 11 | Safari iOS 6.1 | Samsung Internet Android Yes |
onprogress
|
Chrome 7 | Edge 12 | Firefox 3.6 | IE 10 | Opera 11 | Safari 6 | WebView Android Yes | Chrome Android Yes | Firefox Android 32 | Opera Android 11 | Safari iOS 6.1 | Samsung Internet Android Yes |
progress
event
|
Chrome Yes | Edge 12 | Firefox Yes | IE Yes | Opera Yes | Safari Yes | WebView Android Yes | Chrome Android Yes | Firefox Android Yes | Opera Android Yes | Safari iOS Yes | Samsung Internet Android Yes |
readAsArrayBuffer
|
Chrome 7 | Edge 12 | Firefox 3.6 | IE 10 | Opera 12 | Safari 6 | WebView Android ≤37 | Chrome Android 18 | Firefox Android 32 | Opera Android 12 | Safari iOS 6.1 | Samsung Internet Android 1.0 |
readAsBinaryString
|
Chrome 7 | Edge 12 | Firefox 3.6 | IE No | Opera 11 | Safari 6 | WebView Android ≤37 | Chrome Android 18 | Firefox Android 32 | Opera Android 11 | Safari iOS 6.1 | Samsung Internet Android 1.0 |
readAsDataURL
|
Chrome 7 | Edge 12 | Firefox 3.6 | IE 10 | Opera 11 | Safari 6 | WebView Android ≤37 | Chrome Android 18 |
Firefox Android
32
|
Opera Android 11 | Safari iOS 6.1 | Samsung Internet Android 1.0 |
readAsText
|
Chrome 7 | Edge 12 | Firefox 3.6 | IE 10 | Opera 11 | Safari 6 | WebView Android ≤37 | Chrome Android 18 | Firefox Android 32 | Opera Android 11 | Safari iOS 6.1 | Samsung Internet Android 1.0 |
readyState
|
Chrome 7 | Edge 12 | Firefox 3.6 | IE 10 | Opera 11 | Safari 6 | WebView Android Yes | Chrome Android Yes | Firefox Android 32 | Opera Android 11 | Safari iOS 6.1 | Samsung Internet Android Yes |
result
|
Chrome 7 | Edge 12 | Firefox 3.6 | IE 10 | Opera 11 | Safari 6 | WebView Android Yes | Chrome Android Yes | Firefox Android 32 | Opera Android 11 | Safari iOS 6.1 | Samsung Internet Android Yes |
| Available in workers | Chrome Yes | Edge ≤18 | Firefox 46 | IE No | Opera 11 | Safari No | WebView Android Yes | Chrome Android Yes | Firefox Android 46 | Opera Android 11 | Safari iOS No | Samsung Internet Android Yes |
完整支持
不支持
见实现注意事项。
FileReader