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.
<div id="interfaceDiagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveAspectRatio="xMinYMin meet"><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/Blob" target="_top"><rect x="1" y="1" width="75" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="38.5" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">Blob</text></a><polyline points="76,25 86,20 86,30 76,25" stroke="#D4DDE4" fill="none"/><line x1="86" y1="25" x2="116" y2="25" stroke="#D4DDE4"/><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/File" target="_top"><rect x="116" y="1" width="75" height="50" fill="#F4F7F8" stroke="#D4DDE4" stroke-width="2px" /><text x="153.5" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">File</text></a></svg></div>
a:hover text { fill: #0095DD; pointer-events: all;}
Constructor
File()- Returns a newly constructed
File.
Instance properties
File.prototype.lastModifiedRead 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
Dateof the file referenced by theFileobject. File.prototype.nameRead only- Returns the name of the file referenced by the
Fileobject. File.prototype.webkitRelativePath' Read only- Returns the path the URL of the
Fileis relative to.
File implements Blob, so it also has the following properties available to it:
File.prototype.sizeRead only- Returns the size of the file in bytes.
File.prototype.typeRead 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
Blobobject containing the data in the specified range of bytes of the sourceBlob. Blob.prototype.stream()- Transforms the
Fileinto aReadableStreamthat can be used to read theFilecontents. Blob.prototype.text()- Transforms the
Fileinto a stream and reads it to completion. It returns a promise that resolves with aUSVString(text). Blob.prototype.arrayBuffer()- Transforms the
Fileinto a stream and reads it to completion. It returns a promise that resolves with anArrayBuffer.
Specifications
| Specification | Status | Comment |
|---|---|---|
File APIThe definition of 'The File interface' in that specification.
|
Working Draft | Initial definition. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
File
|
Chrome
Full support 13 |
Edge
Full support 12 |
Firefox Full support 7 Full support 7 No support 3 — 7 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' 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 |
| 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 Full support 13 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 Full support 18 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 Full support 1.0 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
- Using files from web applications
FileReader- [[../../../Extensions/Using_the_DOM_File_API_in_chrome_code|Using the DOM File API in chrome code]] (for privileged code running in Gecko, such as Firefox add-ons)
File by Mozilla Contributors is licensed under CC-BY-SA 2.5.