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

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

File オブジェクトは特別な種類の Blob オブジェクトであり、 Blob が利用できる場面ではどこでも利用できます。特に、 FileReader, URL.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 草案 初回定義

ブラウザーの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung Internet
基本対応Chrome 完全対応 13Edge 完全対応 ありFirefox 完全対応 7
完全対応 7
未対応 3 — 7
補足
補足 Non-standard implementation.
IE 完全対応 10Opera 完全対応 11.5Safari 完全対応 6WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 7
完全対応 7
未対応 4 — 7
補足
補足 Non-standard implementation.
Opera Android 完全対応 11.1Safari iOS 完全対応 6Samsung Internet Android 完全対応 あり
File() constructorChrome 完全対応 13Edge 未対応 なしFirefox 完全対応 7IE 未対応 なしOpera 完全対応 11.5Safari 完全対応 10.1WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 7Opera Android 未対応 なしSafari iOS 完全対応 6Samsung Internet Android 完全対応 あり
lastModifiedChrome 完全対応 13Edge 完全対応 18Firefox 完全対応 15IE 完全対応 10Opera 完全対応 16Safari 未対応 なしWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 完全対応 あり
lastModifiedDate
非推奨非標準
Chrome 完全対応 13Edge 完全対応 12Firefox 未対応 15 — 61IE 完全対応 10Opera 完全対応 16Safari 未対応 なしWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 完全対応 あり
nameChrome 完全対応 13Edge 完全対応 12Firefox 完全対応 3.6IE 完全対応 10Opera 完全対応 16Safari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 完全対応 あり
typeChrome 完全対応 13Edge 完全対応 ありFirefox 完全対応 3.6IE 完全対応 10Opera 完全対応 16Safari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 完全対応 あり
webkitRelativePathChrome 完全対応 13
接頭辞付き
完全対応 13
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 未対応 なしFirefox 完全対応 49IE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 完全対応 ありChrome Android 完全対応 18
接頭辞付き
完全対応 18
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge Mobile 未対応 なしFirefox Android 完全対応 49Opera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android ?

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非推奨。新しいウェブサイトでは使用しないでください。
非推奨。新しいウェブサイトでは使用しないでください。
実装ノートを参照してください。
実装ノートを参照してください。
使用するには、ベンダー接頭辞または異なる名前が必要です。
使用するには、ベンダー接頭辞または異なる名前が必要です。

実装ノート

  • Gecko ではクロームコード内でこの API を使用できます。詳細は クロームコードにおける DOM File API の使用を参照してください。クロームコード、 JSM、 ブートストラップスコープから利用するためには Cu.importGlobalProperties(['File']); を使用してインポートする必要があります。
  • Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3) からは、(拡張機能のような) 特権コードは、参照するファイルを特定するために DOM の File コンストラクターに 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.name, Blob.size, FileReader を使用してください。

関連情報

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

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