Web/API/File

From Get docs


The File interface provides information about files and allows JavaScript in a web page to access their content.

File objects are generally retrieved from a FileList object returned as a result of a user selecting files using the <input> element, from a drag and drop operation's DataTransfer object, or from the mozGetAsFile() API on an HTMLCanvasElement.

A File object is a specific kind of a Blob, and can be used in any context that a Blob can. In particular, FileReader, URL.createObjectURL(), createImageBitmap(), and XMLHttpRequest.send() accept both Blobs and Files.

See Using files from web applications for more information and examples.

Constructor

File()
Returns a newly constructed File.

Instance properties

File.prototype.lastModified Read only
Returns the last modified time of the file, in millisecond since the UNIX epoch (January 1st, 1970 at Midnight).
File.prototype.lastModifiedDate ' Read only
Returns the last modified Date of the file referenced by the File object.
File.prototype.nameRead only
Returns the name of the file referenced by the File object.
File.prototype.webkitRelativePath ' Read only
Returns the path the URL of the File is relative to.

File implements Blob, so it also has the following properties available to it:

File.prototype.size Read only
Returns the size of the file in bytes.
File.prototype.type Read only
Returns the MIME type of the file.

Instance methods

The File interface doesn't define any methods, but inherits methods from the Blob interface:

Blob.prototype.slice([start[, end[, contentType])]]
Returns a new Blob object containing the data in the specified range of bytes of the source Blob.
Blob.prototype.stream()
Transforms the File into a ReadableStream that can be used to read the File contents.
Blob.prototype.text()
Transforms the File into a stream and reads it to completion. It returns a promise that resolves with a USVString (text).
Blob.prototype.arrayBuffer()
Transforms the File into a stream and reads it to completion. It returns a promise that resolves with an ArrayBuffer.

Specifications

Specification Status Comment
File APIThe definition of 'The File interface' in that specification. Working Draft Initial definition.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
File Chrome

Full support 13

Edge

Full support 12

Firefox Full support 7


Full support 7


No support 3 — 7

Notes'

Notes' Non-standard implementation.

IE

Full support 10

Opera

Full support 11.5

Safari

Full support 6

WebView Android

Full support ≤37

Chrome Android

Full support 18

Firefox Android Full support 7


Full support 7


No support 4 — 7

Notes'

Notes' Non-standard implementation.

Opera Android

Full support 11.5

Safari iOS

Full support 6

Samsung Internet Android

Full support 1.0

File() constructor Chrome

Full support 38

Edge

Full support 79

Firefox

Full support 28

IE

No support No

Opera

Full support 25

Safari

Full support 10

WebView Android

Full support 38

Chrome Android

Full support 38

Firefox Android

Full support 28

Opera Android

Full support 25

Safari iOS

Full support 10

Samsung Internet Android

Full support 3.0

lastModified Chrome

Full support 13

Edge

Full support 18

Firefox

Full support 15

IE

No support No

Opera

Full support 16

Safari

Full support 10

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

No support No

Opera Android

No support No

Safari iOS

Full support 10

Samsung Internet Android

Full support Yes

lastModifiedDate

Deprecated'Non-standard'

Chrome

Full support 13

Edge

Full support 12

Firefox

No support 15 — 61

IE

Full support 10

Opera

Full support 16

Safari

No support No

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

Full support Yes

name Chrome

Full support 13

Edge

Full support 12

Firefox

Full support 3.6

IE

Full support 10

Opera

Full support 16

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support 4

Opera Android

No support No

Safari iOS

Full support 8

Samsung Internet Android

Full support Yes

type Chrome

Full support 13

Edge

Full support 12

Firefox

Full support 3.6

IE

Full support 10

Opera

Full support 16

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

No support No

Opera Android

No support No

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

webkitRelativePath

Chrome Full support 13

Prefixed'

Full support 13

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Edge

Full support 13

Firefox

Full support 49

IE

No support No

Opera

No support No

Safari

Full support 11.1

WebView Android

Full support Yes

Chrome Android Full support 18

Prefixed'

Full support 18

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Firefox Android

Full support 49

Opera Android

No support No

Safari iOS

Full support 11.3

Samsung Internet Android Full support 1.0

Prefixed'

Full support 1.0

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Legend

Full support  
Full support
No support  
No support
Non-standard. Expect poor cross-browser support.'
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.'
Deprecated. Not for use in new websites.
See implementation notes.'
See implementation notes.
Requires a vendor prefix or different name for use.'
Requires a vendor prefix or different name for use.


See also

File by Mozilla Contributors is licensed under CC-BY-SA 2.5.