File

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

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

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

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

コンストラクター

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

インスタンスプロパティ

File.prototype.lastModified 読取専用
ファイルの最終更新時刻を、 UNIX 元期 (1970年1月1日深夜) からの経過ミリ秒数で返します。
File.prototype.lastModifiedDate 読取専用
File オブジェクトが参照しているファイルの最終更新時刻の Date を返します。
File.prototype.name読取専用
File オブジェクトが参照しているファイルの名前を返します。
File.prototype.webkitRelativePath 読取専用
File の URL の相対パスを返します。

FileBlob を実装しているので、以下のようなプロパティも利用できます。

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

インスタンスメソッド

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

Blob.prototype.slice([start[, end[, contentType]]])
ソース Blob の指定したバイト数の範囲のデータを含む新しい Blob オブジェクトを返します。
Blob.prototype.stream()
FileReadableStream に変換し、File の内容を読み込めるようにします。
Blob.prototype.text()
File をストリームに変換し、最後まで読み込みます。これは、USVString (テキスト) で解決するプロミスを返します。
Blob.prototype.arrayBuffer()
File をストリームに変換し、最後まで読み込みます。 ArrayBuffer で解決するプロミスを返します。

仕様書

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

ブラウザーの互換性

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

凡例

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

関連情報