--- title: FileReader slug: Web/API/FileReader tags: - API - File API - Files - Interface - Reference translation_of: Web/API/FileReader ---
藉由 FileReader 物件,Web 應用程式能以非同步(asynchronously)方式讀取儲存在用戶端的檔案(或原始資料暫存)內容,可以使用 {{domxref("File")}} 或 {{domxref("Blob")}} 物件指定要讀取的資料。
File 物件可以從使用者於 {{HTMLElement("input")}} 元素選擇之檔案所回傳的 {{domxref("FileList")}} 物件當中取得,或是來自拖放操作所產生的 {{domxref("DataTransfer")}} 物件之中,也能由 {{domxref("HTMLCanvasElement")}} 物件(元素物件)執行 mozGetAsFile() 方法後回傳。
{{AvailableInWorkers}}
FileReader 物件。請參考在網頁應用程式中使用本地檔案的更多細節與範例。
FileReader 狀態的數字,其代表的意義為:
EMPTY |
0 |
尚未讀入任何資料。 |
LOADING |
1 |
正在讀入資料。 |
DONE |
2 |
完成資料讀取。 |
onload 或 onerror 事件處理器之後才執行。FileReader 物件繼承自 {{domxref("EventTarget")}},其所有的事件也都能夠透過 {{domxref("EventTarget.addEventListener()","addEventListener")}} 方法來註冊事件監聽器。
readyState 將會是 DONE。result 將以 {{domxref("ArrayBuffer")}} 物件來表示讀入的資料內容。result 將以字串型式來表示讀入的原始二進位資料(raw binary data)。result 將以 data: URL 格式(base64 編碼)的字串來表示讀入的資料內容。result 將以文字字串型式來表示讀入的資料內容。| 規範 | 狀態 | 註解 |
|---|---|---|
| {{SpecName("File API", "#dfn-filereader", "FileReader")}} | {{Spec2("File API")}} | Initial definition |
{{CompatibilityTable}}
| 功能 | Firefox (Gecko) | Chrome | Edge | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| 基本支援 | {{CompatGeckoDesktop("1.9.2")}}[1] | 7 | {{CompatVersionUnknown}} | 10[2] | 12.02[2] | 6.0 |
| 在 Web Workers 的支援 | {{CompatGeckoDesktop(46)}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown}} | {{CompatNo}} | {{CompatVersionUnknown()}} | {{CompatNo}} |
error property uses {{domxref("DOMException")}}, not {{domxref("DOMError")}} |
{{CompatGeckoDesktop(58)}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown()}} | {{CompatNo}} | {{CompatVersionUnknown()}} | {{CompatNo}} |
| 功能 | Firefox Mobile (Gecko) | Android | Edge | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| 基本支援 | 32 | 3 | {{CompatVersionUnknown}} | 10 | 11.5 | 6.1 |
| 在 Web Workers 的支援 | {{CompatGeckoMobile(46)}} | {{CompatVersionUnknown()}} | {{CompatVersionUnknown}} | {{CompatNo}} | {{CompatVersionUnknown()}} | {{CompatNo}} |
error property uses {{domxref("DOMException")}}, not {{domxref("DOMError")}} |
{{CompatGeckoMobile(58)}} | {{CompatUnknown()}} | {{CompatVersionUnknown()}} | {{CompatNo}} | {{CompatVersionUnknown()}} | {{CompatNo}} |
[1] 在 Gecko 2.0 beta 7 (Firefox 4.0 beta 7) 以前,所有的 {{domxref("Blob")}} 參數都屬於 {{domxref("File")}} 參數;之後為了更符合規範,所以更新了這個特徵。在 Gecko 13.0 {{geckoRelease("13.0")}} 以前,FileReader.error 屬性回傳了 {{domxref("FileError")}} 物件。這個介面之後被移除、而 FileReader.error 目前會回傳 {{domxref("DOMError")}} 並定義為 FileAPI draft。
[2] Opera 在 11.1 有限度支援。