File インターフェイスはファイルの情報を提供したり、ウェブページ内の JavaScript がその中身にアクセスすることができるようにしたり。

File オブジェクトは一般的に <input> 要素を使用してユーザがファイルを選択した結果として返された FileList オブジェクトや、ドラッグアンドドロップ操作の DataTransfer オブジェクト、 HTMLCanvasElementmozGetAsFile() API から情報を取得します。 Gecko では、特権コードはユーザーによる操作なしにローカルファイルを表す File オブジェクトを作ることができます(詳しくは Implementation notes を参照してください)。

File オブジェクトは特別な種類の Blob オブジェクトであり、 Blob が利用できる場面ではどこでも利用できます。特に、 FileReaderURL.createObjectURL()createImageBitmap()XMLHttpRequest.send()BlobFile の両方を受け付けることができます。

詳しい情報や例は、ウェブアプリケーションからファイルを使用する を参照してください。

コンストラクター

File()
新しく構築された File オブジェクトを返します。

プロパティ

File.lastModified 読取専用
ファイルの最終更新時刻を、 UNIX 時刻(1970年1月1日0:00からの経過ミリ秒数)を返します。
File.lastModifiedDate 読取専用
File オブジェクトが参照しているファイルの最終更新時刻の Date オブジェクトを返します。
File.name 読取専用
File オブジェクトが参照しているファイルのファイル名を返します。
File.webkitRelativePath 読取専用
File オブジェクトが関連付けられている URL のパスを返します。

FileBlob インターフェイスを実装していますので、以下のプロパティも持っています。

File.size 読取専用
ファイルのサイズをバイト単位で返します。
File.type 読取専用
ファイルの MIME タイプを返します。

メソッド

File インターフェイスはメソッドを定義していませんが、 Blob インターフェイスのメソッドを継承しています。

Blob.slice([start[, end[, contentType]]])
元の Blob の中でバイト単位で特定の範囲のデータを含む新しい Blob オブジェクトを返します。

仕様

仕様 状態 コメント
File API 草案 初回定義。

ブラウザー実装状況

現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。 この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。 手助けしていただける場合は、こちらから!

機能 Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 13 (有) 3.0 (1.9)[1]
7 (7)
10.0 11.5 6.0
name (有) (有) 3.6 (1.9.2) 11.0 ? ?
lastModifiedDate (有) 未サポート 15 (15) ? ? ?
webkitRelativePath (有) (有) 49 (49) ? (有) (有)
size (有) ? ? 11.0 ? ?
機能 Android Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
基本サポート 未サポート (有) 1.0 (1.9)[1]
7.0 (7)
未サポート 11.1 6.0
name ? (有) 1.0 (1.9.2) ? ? ?
lastModifiedDate ? 未サポート 15.0 (15) ? ? ?
webkitRelativePath (有) (有) 49.0 (49) ? (有)

(有)

size ? ? ? ? ? ?

[1] 非標準実装です。

実装ノート

  • Gecko では chrome コード内でこの API を使用できます。詳細は Using the DOM File API in chrome code を参照してください。chrome コード、 JSM、 ブートストラップスコープから利用するためには Cu.importGlobalProperties(['File']); を使用してインポートする必要があります。
  • Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3) からは、(拡張機能のような) 特権コードは、参照するファイルを特定するために File DOM のコンストラクタに nsIFile を渡すことができます。
  • Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5) からは、nsIDOMFile オブジェクトから直接インスタンス化する代わりに、new File を使用して、XPCOM コンポーネントコードから File オブジェクトを生成できます。コンストラクタでは Blob と対照的に、第2引数にファイル名が必要になります。ファイル名は任意の文字列とすることができます。
    new File(
      Array parts,
      String filename, 
      BlobPropertyBag properties
    );
  • 次の非標準のプロパティは Gecko 7 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4) で削除されました。 File.fileName, File.fileSize, File.getAsBinary(), File.getAsDataURL(), File.getAsText(string encoding) (バグ 661876)。代わりに標準プロパティ File.nameBlob.sizeFileReader を使用してください。

関連情報

ドキュメントのタグと貢献者

このページの貢献者: mfuji09, dskmori, ukyo, akiomik, mantaroh
最終更新者: mfuji09,