原文地址 https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader
**FileReader**
對象允許 Web 應(yīng)用程序異步讀取存儲在用戶計算機上的文件(或原始數(shù)據(jù)緩沖區(qū))的內(nèi)容宗苍,使用 File
或 Blob
對象指定要讀取的文件或數(shù)據(jù)谎碍。
其中 File 對象可以是來自用戶在一個 <input>
元素上選擇文件后返回的 FileList
對象, 也可以來自拖放操作生成的 DataTransfer
對象, 還可以是來自在一個 HTMLCanvasElement
上執(zhí)行mozGetAsFile()
方法后返回結(jié)果统求。
重要提示: FileReader 僅用于以安全的方式從用戶(遠(yuǎn)程)系統(tǒng)讀取文件內(nèi)容 它不能用于從文件系統(tǒng)中按路徑名簡單地讀取文件。 要在 JavaScript 中按路徑名讀取文件和措,應(yīng)使用標(biāo)準(zhǔn) Ajax 解決方案進(jìn)行服務(wù)器端文件讀取,如果讀取跨域悠夯,則使用 CORS 權(quán)限是晨。
Note: 此特性在 Web Worker 中可用。
構(gòu)造函數(shù)
返回一個新構(gòu)造的FileReader
健蕊。
有關(guān)詳細(xì)信息和示例菱阵,請參閱如何在 web 應(yīng)用程序中使用文件。
屬性
一個 DOMException
缩功,表示在讀取文件時發(fā)生的錯誤 晴及。
表示FileReader
狀態(tài)的數(shù)字。取值如下:
值
文件的內(nèi)容嫡锌。該屬性僅在讀取操作完成后才有效虑稼,數(shù)據(jù)的格式取決于使用哪個方法來啟動讀取操作。
事件處理
處理 [abort](/zh-CN/docs/Web/Reference/Events/abort "/zh-CN/docs/Web/Reference/Events/abort")
事件势木。該事件在讀取操作被中斷時觸發(fā)蛛倦。
處理 [error](/zh-CN/docs/Web/Reference/Events/error "/zh-CN/docs/Web/Reference/Events/error")
事件。該事件在讀取操作發(fā)生錯誤時觸發(fā)跟压。
處理 [load](/zh-CN/docs/Web/Reference/Events/load "/zh-CN/docs/Web/Reference/Events/load")
事件胰蝠。該事件在讀取操作完成時觸發(fā)。
處理 [loadstart](/zh-CN/docs/Web/Reference/Events/loadstart "/zh-CN/docs/Web/Reference/Events/loadstart")
事件。該事件在讀取操作開始時觸發(fā)茸塞。
處理 [loadend](/zh-CN/docs/Web/Reference/Events/loadend "/zh-CN/docs/Web/Reference/Events/loadend")
事件躲庄。該事件在讀取操作結(jié)束時(要么成功,要么失敿嘏啊)觸發(fā)噪窘。
處理 [progress](/zh-CN/docs/Web/Reference/Events/progress "/zh-CN/docs/Web/Reference/Events/progress")
事件。該事件在讀取 Blob
時觸發(fā)效扫。
因為 FileReader
繼承自 EventTarget
倔监,所以所有這些事件也可以通過 addEventListener
方法使用。
方法
中止讀取操作菌仁。在返回時浩习,readyState
屬性為DONE
。
FileReader.readAsArrayBuffer()
開始讀取指定的 Blob
中的內(nèi)容, 一旦完成, result 屬性中保存的將是被讀取文件的 ArrayBuffer
數(shù)據(jù)對象.
FileReader.readAsBinaryString()
開始讀取指定的 Blob
中的內(nèi)容济丘。一旦完成谱秽,result
屬性中將包含所讀取文件的原始二進(jìn)制數(shù)據(jù)。
開始讀取指定的 Blob
中的內(nèi)容摹迷。一旦完成疟赊,result
屬性中將包含一個data:
URL 格式的 Base64 字符串以表示所讀取文件的內(nèi)容。
開始讀取指定的 Blob
中的內(nèi)容峡碉。一旦完成近哟,result
屬性中將包含一個字符串以表示所讀取的文件內(nèi)容。
規(guī)范
Specification | Status | Comment |
---|---|---|
[File API | ||
FileReader](https://w3c.github.io/FileAPI/#dfn-filereader) | Working Draft | Initial definition |
瀏覽器兼容
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
- Desktop
- Mobile
3.6 (1.9.2)[1]
[1] Prior to Gecko 2.0 beta 7 (Firefox 4.0 beta 7), all Blob
parameters below were File
parameters; this has since been updated to match the specification correctly. Prior to Gecko 13.0 (Firefox 13.0 / Thunderbird 13.0 / SeaMonkey 2.10) the FileReader.error
property returned a FileError
object. This interface has been removed and FileReader.error
is now returning the DOMError
object as defined in the latest FileAPI draft.
[2] Opera has partial support in 11.1.