原文地址 https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader
**FileReader** 對象允許 Web 應(yīng)用程序異步讀取存儲在用戶計(jì)算機(jī)上的文件(或原始數(shù)據(jù)緩沖區(qū))的內(nèi)容,使用 File 或 Blob 對象指定要讀取的文件或數(shù)據(jù)。
其中 File 對象可以是來自用戶在一個(gè) <input>元素上選擇文件后返回的 FileList對象, 也可以來自拖放操作生成的 DataTransfer對象, 還可以是來自在一個(gè) 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è)新構(gòu)造的FileReader。
有關(guān)詳細(xì)信息和示例,請參閱如何在 web 應(yīng)用程序中使用文件。
屬性
一個(gè) DOMException,表示在讀取文件時(shí)發(fā)生的錯(cuò)誤 。
表示FileReader狀態(tài)的數(shù)字。取值如下:
值
文件的內(nèi)容。該屬性僅在讀取操作完成后才有效,數(shù)據(jù)的格式取決于使用哪個(gè)方法來啟動(dòng)讀取操作。
事件處理
處理 [abort](/zh-CN/docs/Web/Reference/Events/abort "/zh-CN/docs/Web/Reference/Events/abort")事件。該事件在讀取操作被中斷時(shí)觸發(fā)。
處理 [error](/zh-CN/docs/Web/Reference/Events/error "/zh-CN/docs/Web/Reference/Events/error")事件。該事件在讀取操作發(fā)生錯(cuò)誤時(shí)觸發(fā)。
處理 [load](/zh-CN/docs/Web/Reference/Events/load "/zh-CN/docs/Web/Reference/Events/load")事件。該事件在讀取操作完成時(shí)觸發(fā)。
處理 [loadstart](/zh-CN/docs/Web/Reference/Events/loadstart "/zh-CN/docs/Web/Reference/Events/loadstart")事件。該事件在讀取操作開始時(shí)觸發(fā)。
處理 [loadend](/zh-CN/docs/Web/Reference/Events/loadend "/zh-CN/docs/Web/Reference/Events/loadend")事件。該事件在讀取操作結(jié)束時(shí)(要么成功,要么失?。┯|發(fā)。
處理 [progress](/zh-CN/docs/Web/Reference/Events/progress "/zh-CN/docs/Web/Reference/Events/progress")事件。該事件在讀取 Blob時(shí)觸發(fā)。
因?yàn)?FileReader 繼承自 EventTarget,所以所有這些事件也可以通過 addEventListener方法使用。
方法
中止讀取操作。在返回時(shí),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屬性中將包含一個(gè)data: URL 格式的 Base64 字符串以表示所讀取文件的內(nèi)容。
開始讀取指定的 Blob中的內(nèi)容。一旦完成,result屬性中將包含一個(gè)字符串以表示所讀取的文件內(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.