備忘録的プログラミングリファレンス

FileReader インターフェイス

 FileReader インターフェイスは、File オブジェクトの内容をデータとして取得するためのプロパティ、メソッド、イベントが定義されたインターフェイスです。

 扱えるファイルは基本的にローカル PC のファイルのみです。

FileReader 継承図
  • Web API
    • DOM
      • Event ... AnimationEvent、ClipboardEventなど

 読み込むことができるのは Blob や File オブジェクトです。読み込むファイルのデータタイプはそれに適応したメソッドを指定する必要があります。
 詳しくは Example を参照してください。

 非同期でサーバーからのファイル読み込み(AJAX)については XMLHttpRequest を参照してください。

ページ内 Index

FileReader について

FileReader で解析できるのはローカル PC のファイルのみ

 FileReader で解析できるのはローカル PC のファイルのみという解説がありますが、これについて調べてみました。

 FileReader で扱うことができるのは Blob や File オブジェクトです。
 URL を指定したネットワーク上のファイルの読み込みは基本的にできません。URL で指定されたファイルを読み込み、File オブジェクトを生成する方法が Web API ないためです。
 File インターフェイスに URL を指定してファイルを読み込む手段がないために、FileReader でもローカル PC 以外のファイルを読み込むことができません。

 File オブジェクトを取得する方法には <input type="file" > を使用する方法がありますが、この方法でも取得できるのはローカル PC のファイルだけです。

 そのために、FileReader で扱えるのはローカル PC のファイルのみという解説になっていると思われます。

 URL.createObjectURL() や MediaStream から 取得する方法の解説があるのですが、URL.createObjectURL() メソッドの引数は File オブジェクトであって、URL を指定することで取得できるファイルのことではありません。
 MediaStream もデータ自体を扱いますが、URL から取得できるファイルのことではありません。

コンストラクター(Constructor)

 FileReader オブジェクトを生成します(正確にはインスタンス、オブジェクスはインスタントも含む広義)。 File オブジェクトをデータ化するためには FileReader オブジェクトを生成します。

const file_reader = new FileReader();
引数
なし
返り値
FileReader インスタンス

プロパティ(Properties)

プロパティ概要
.errorエラーを DOMException で返す
.readyStateファイルの読み込み状態を unsigned short 型の数値で返す。
状態説明
0EMPTY読み込み前
1LOADING読み込み中
2DONE読み込みが完了
.resultファイルの内容を取得

メソッド(Methods)

 ファイルのデータ形式(データタイプ)によって読むこむためのメソッドを選択しなければなりません。

メソッド概要
.abort()リクエストの中止を実行
.readAsArrayBuffer()ファイルの内容を固定長のバイナリデータとして読み込む
.readAsBinaryString()ファイルの内容をバイナリーデータとして読み込む。データは文字列として扱う
.readAsDataURL()ファイルの内容をデータとして読み込む。画像はこの読み込みメソッドを使用
.readAsText()テキストデータとして読み込む

イベント( Event )

 FileReader インターフェイスに独自のイベントはないようです。

 以下は FileReader で機能するイベントです。

 その他は GlobalEventHandlers を参照してください。

Example

 FileReader の例です。確認ボタンをクリックすると実行します。

確認ボタンをクリックしてください。以下のHTML,CSS,Scriptコード例が実行されます。