FileReader

FileReader オブジェクトを使用すると、Web アプリケーションは、ユーザーのコンピュータに保存されているファイル (または生データ バッファ) の内容を非同期に読み取ることができます。File または Blob オブジェクトを使用して、読み込むファイルまたはデータを指定します。

File オブジェクトは、<input> 要素を使用してファイルを選択した結果として返される FileList オブジェクト、ドラッグ&ドロップ操作の DataTransfer オブジェクト、または HTMLCanvasElement 上の mozGetAsFile() API から取得することができます。

重要事項: FileReader は、ユーザーの (リモートの) システムから安全な方法でのみファイルの内容を読み取るために使用されます。単にファイルシステムからパス名でファイルを読み込むためには使用できません。JavaScript でパス名でファイルを読み込むには、標準的な Ajax ソリューションを使用してサーバーサイドのファイル読み込みを行い、クロスドメインでファイルを読み込む場合は CORS パーミッションを使用しなければなりません。

注: この機能は Web Worker 内で利用可能です。

コンストラクター

FileReader()
新しく作成された FileReader を返します。

詳細や例については Web アプリケーションからのファイルの使用 を参照してください。

プロパティ

FileReader.error 読取専用
ファイルの読み込み中に発生したエラーを表す DOMException
FileReader.readyState 読取専用
FileReader の状態を示す数値。以下のいずれかになります。
EMPTY 0 まだデータは読み込まれていません。
LOADING 1 データは現在読み込み中です。
DONE 2 読込リクエストがすべて終了しました。
FileReader.result 読取専用
ファイルの内容。このプロパティは読み込み操作が完了した後にのみ有効であり、データのフォーマットは、どのメソッドが読み込み操作を開始するのに使用されたかに依存します。

イベントハンドラ

FileReader.onabort
abort (en-US) イベントのハンドラです。このイベントは、読み込み操作が中止されるたびにトリガされます。
FileReader.onerror
error イベントのハンドラです。このイベントは、読み込み操作がエラーになるたびにトリガされます。
FileReader.onload
load イベントのハンドラです。このイベントは、読み込み操作が正常に完了するたびにトリガされます。
FileReader.onloadstart
loadstart (en-US) イベントのハンドラです。このイベントは、読み込みが開始されるたびにトリガされます。
FileReader.onloadend
loadend (en-US) イベントのハンドラです。このイベントは、 (成功または失敗のいずれかで) 読み込み操作が完了するたびにトリガされます。
FileReader.onprogress
progress (en-US) イベントのハンドラです。このイベントは、Blob コンテンツの読み込み中に発生します。

FileReaderEventTarget を継承しているので、addEventListener メソッドを使用することで、これらのイベントをすべて待ち受けることもできます。

メソッド

FileReader.abort()
読込処理を中断します。結果として readyStateDONE に変わります。
FileReader.readAsArrayBuffer()
指定された Blob の内容の読み込みを開始し、終了すると、result 属性にファイルのデータを表す ArrayBuffer (en-US) が格納されます。
FileReader.readAsBinaryString() この API は標準化されていません。
指定された Blob の内容の読み込みを開始し、終了すると、result 属性にはファイルからの生のバイナリデータが文字列として格納されます。
FileReader.readAsDataURL()
指定された Blob の内容の読み込みを開始し、終了すると、result 属性にはファイルのデータを表す data: の URL が格納されます。
FileReader.readAsText()
指定された Blob の内容の読み込みを開始し、終了すると result 属性にファイルの内容がテキスト文字列として格納されます。オプションでエンコーディング名を指定することができます。

イベント

addEventListener() を使用するか、このインターフェイスの onイベント名 プロパティにイベントリスナーを代入するかして、これらのイベントを待ち受けます。

abort
プログラムが FileReader.abort() を呼び出したなどの原因で、読み取り操作が中断されたときに発生します。
onabort プロパティ経由でも利用できます。
error
エラーのために読み取りが失敗したときに発生します。
onerror プロパティ経由でも利用できます。
load
読み取りが正常に完了したときに発生します。
onload プロパティ経由でも利用できます。
loadend
正常かどうかにかかわらず、読み取りが完了したときに発生します。
onloadend プロパティ経由でも利用できます。
loadstart
読み取りが開始されたときに発生します。
onloadstart プロパティ経由でも利用できます。
progress
データの読み取り時に定期的に発生します。
onprogress プロパティ経由でも利用できます。

仕様

仕様書 状態 備考
File API
FileReader の定義
草案 初回定義

ブラウザの対応

BCD tables only load in the browser

あわせて参照