Widely available すべての主要ブラウザで対応済み。安心して使用可能。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
13
12
7
4
18
3.2

Blob インターフェイスは blob、すなわち不変の生データであるファイルのようなオブジェクトを表します。テキストやバイナリーデータとして読み込んだり、ReadableStream に変換してそのメソッドを使ったデータ処理をしたりすることができます。

5
12
4
6
18
6

arrayBuffer() は Blob インターフェイスのメソッドで、 Blob の内容を ArrayBuffer 内のバイナリーデータとした解決するプロミス (Promise) を返します。

76
79
69
14
76
14.5

Blob() コンストラクターは、新たな Blob オブジェクトを返します。その blob の中身は、引数 blobParts で与えられた値を連結したものから構成されています。

20
12
13
6
25
6

bytes() は Blob インターフェイスのメソッドで、この Blob の内容をバイト配列として含む Uint8Array で解決するプロミス (Promise) を返します。

144
144
128
18
144
18

size は Blob インターフェイスのプロパティで、この Blob または File の大きさをバイト単位で返します。

5
12
4
6
18
6

slice() は Blob インターフェイスのメソッドで、呼び出された blob のサブセットのデータを含む新しい Blob オブジェクトを作成して返します。

21
12
13
7
25
7

stream() は Blob インターフェイスのメソッドで、ReadableStream を返します。これは、読み取り時に、Blob に含まれるデータを返します。

76
79
69
14.1
76
14.5

text() は Blob インターフェイスのメソッドで、 Promise を返しますが、それは Blob の内容を含む文字列で解決され、 UTF-8 として解釈されます。

76
79
69
14
76
14.5

type は Blob インターフェイスの読み取り専用プロパティで、このファイルの MIME typeを返します。

5
12
4
6
18
6

File() コンストラクターは、新しい File オブジェクトのインスタンスを生成します。

38
79
28
10.1
38
10.3

lastModified は File インターフェイスの読み取り専用プロパティで、ファイルの最終更新日時を UNIX 元期(1970 年 1 月 1 日の深夜 0 時)からのミリ秒数で返します。最終更新日時が分からないファイルは、現在の日時を返します。

13
18
15
10
18
10

name は File インターフェイスの読み取り専用プロパティで、この File オブジェクトによって表されるファイルの名前を返します。セキュリティ上の理由から、パスはこのプロパティから除外されます。

13
12
3.6
8
18
8

FileList インターフェイスは、HTML の input 要素の files プロパティによって返されるこの型のオブジェクトを表します。これにより、 要素で選択されたファイルのリストにアクセスできます。また、ドラッグ&ドロップ API を使用する際、ウェブコンテンツにドロップされたファイルのリストにも使用されています。この使い方の詳細は、DataTransfer オブジェクトを参照してください。

2
12
3
4
18
3.2

item() は FileList インターフェイスのメソッドは、ファイルリスト中の指定された位置のファイルを表す File オブジェクトを返します。

2
12
3
4
18
3.2

length は FileList インターフェイスの読み取り専用プロパティで、FileList に含まれるファイルの数を返します。

2
12
3
4
18
3.2

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

6
12
3.6
6
18
6

abort メソッドは、読み取り操作を中止します。戻る時に、 FileReader.readyState が DONE になります。

6
12
3.6
6
18
6

abort イベントは、読み込みが中断されたときに発生します。例えば、プログラムが FileReader.abort() を呼び出した場合などです。

6
12
3.6
6
18
6

FileReader の error プロパティは、ファイルの読み取り中に発生したエラーを返します。

6
12
3.6
6
18
6

error イベントは、エラーによって読み取りが失敗したとき (例えば、ファイルが見つからなかった場合や読み取り可能ではなかった場合) に発生します。

6
12
3.6
6
18
6

FileReader() コンストラクターは、新しい FileReader を作成します。

6
12
3.6
6
18
6

load イベントは、ファイルが正常に読み込めたときに発生します。

6
12
3.6
6
18
6

loadend イベントは、ファイル読み込みが、成功したかどうかにかかわらず完了したときに発生します。

6
12
3.6
6
18
6

loadstart イベントは、ファイル読み込み操作が始まったときに発生します。

6
12
79
6
18
6

progress は FileReader インターフェイスのイベントで、FileReader がデータを読むときに定期的に発生します。

6
12
3.6
6
18
6

FileReader インターフェイスの readAsArrayBuffer() メソッドは、指定された Blob ないし File オブジェクトの内容を読み込むために使用します。読み込み処理が終了すると FileReader.readyState が DONE に変わり、 FileReader/loadend_event イベントが発行されます。それと同時に、 FileReader.result プロパティにはファイルのデータを表す ArrayBuffer が格納されます。

6
12
3.6
6
18
6

readAsDataURL メソッドは、指定されたBlob または File の内容を読み込むために使用されます。読み込み操作が終了すると、FileReader.readyState が DONE となり、FileReader/loadend_event が発生します。このとき、FileReader.result 属性には、ファイルのデータを表す、base64 エンコーディングされた data: URL の文字列が格納されます。

6
12
3.6
6
18
6

readAsText() メソッドは、指定された Blob または File の内容を読み取るために使用します。読み取り操作が完了すると、 FileReader.readyState が DONE に変わり、 FileReader/loadend_event イベントが発生し、 FileReader.result プロパティにはファイルの内容が文字列として格納されます。

6
12
3.6
6
18
6

FileReader の readyState プロパティは、 FileReader がいる読み取り操作の現在の状態を提供します。 FileReader は以下のいずれかの状態にあります。

6
12
3.6
6
18
6

FileReader の result プロパティは、ファイルの内容を返します。このプロパティは、読み取り操作が完了した後でのみ有効で、データの形式は、読み取り操作を開始するために使用されたメソッドによって異なります。

6
12
3.6
6
18
6
worker_support

労働者で利用可能

6
12
46
6
18
6

FileReaderSync インターフェイスにより、File または Blob オブジェクトを同期的に読み込むことができます。

7
12
8
6
18
6

FileReaderSync() コンストラクターは、新しい FileReaderSync を作成します。

7
12
8
6
18
6

readAsArrayBuffer() は FileReaderSync インターフェイスのメソッドで、File または Blob オブジェクトを同期的に ArrayBuffer に読み込むことができます。このインターフェイスは、ブロックが発生する可能性のある同期 I/O を可能にするため、ワーカーでのみ利用可能です。

9
12
8
6
18
6

readAsDataURL() は FileReaderSync インターフェイスのメソッドで、File または Blob オブジェクトを同期的に data URL を表す文字列に読み込むことができます。このインターフェイスは、ブロックが発生する可能性のある同期 I/O を可能にするため、ワーカーでのみ利用可能です。

7
12
8
6
18
6

readAsText() は FileReaderSync インターフェイスのメソッドで、File または Blob オブジェクトを同期的に文字列に読み込むことができます。このインターフェイスは、ブロックが発生する可能性のある同期 I/O を可能にするため、ワーカーでのみ利用可能です。

7
12
8
6
18
6
worker_support

労働者で利用可能

7
12
8
6
18
6

createObjectURL() は URL インターフェイスの静的メソッドで、引数で指定されたオブジェクトを表す URL を含む文字列を生成します。

19
12
19
6
25
6

revokeObjectURL() は URL インターフェイスの静的メソッドで、以前に URL.createObjectURL_static を呼び出して生成された既存のオブジェクト URL を解放します。

19
12
19
6
25
6
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)
注釈 2件
削除済み
  • このバージョンで機能が削除されました (7)
実装メモ
  • 非標準の実装。
注釈 1件
実装メモ
  • Firefox 16 以前では、2 番目のパラメータが `null` または `undefined` に設定されている場合、空の辞書として扱われるのではなく、エラーが発生していました。
注釈 2件
削除済み
  • このバージョンで機能が削除されました (25)
対応条件
  • ベンダープレフィックス付きで対応: webkit (5)
注釈 3件
実装メモ
  • Firefox 12 以前のバージョンでは、`Blob.slice()` の動作に影響を与えるバグが存在していました。具体的には、`start` および `end` の位置が符号付き 64 ビット値の範囲外の場合、正しく動作しませんでした。このバグは修正され、符号なし 64 ビット値もサポートされるようになりました。
削除済み
  • このバージョンで機能が削除されました (13)
対応条件
  • ベンダープレフィックス付きで対応: moz (5)
注釈 2件
削除済み
  • このバージョンで機能が削除されました (7)
対応条件
  • ベンダープレフィックス付きで対応: webkit (6)
注釈 2件
削除済み
  • このバージョンで機能が削除されました (25)
対応条件
  • ベンダープレフィックス付きで対応: webkit (18)
注釈 2件
削除済み
  • このバージョンで機能が削除されました (7)
対応条件
  • ベンダープレフィックス付きで対応: webkit (6)
注釈 1件
実装メモ
  • Firefox 4 以前では、`Blob` パラメータは `File` パラメータでした。
注釈 3件
実装メモ
  • Firefox 13 以前では、`error` プロパティは `FileError` オブジェクトを返していました。
  • Firefox 13 から Firefox 58 まで、`error` プロパティは `DOMError` オブジェクトを返していました。
  • Firefox 58 以降、`error` プロパティは `DOMException` オブジェクトを返します。
注釈 1件
実装メモ
  • `error` プロパティは `DOMError` オブジェクトを返します。
注釈 1件
実装メモ
  • `error` プロパティは `DOMError` オブジェクトを返します。
注釈 3件
制限事項
  • このブラウザでは部分的にしか実装されていません
削除済み
  • このバージョンで機能が削除されました (79)
実装メモ
  • `loadstart` イベントは同期的にディスパッチされる(仕様では非同期であるべきである)。
注釈 1件
実装メモ
  • `createObjectURL()` は、`ServiceWorker` のコンテキスト内では使用できなくなりました。
注釈 1件
実装メモ
  • `revokeObjectURL()` は、`ServiceWorker` のコンテキスト内では使用できなくなりました。

実務での使いどころ

  • File API の活用

    File インターフェイスは、ファイルについての情報を提供したり、ウェブページ内の JavaScript からその内容にアクセスできるようにしたりします。

注意点

  • 古いブラウザでは対応していない場合がある。

実装メモ

  • 一部の API はセキュアコンテキスト (HTTPS) やユーザー操作起点を必要とする。利用前に要件を確認すること。