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 Blob
s and File
s.
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.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 theFile
object. File.prototype.name
Read 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 sourceBlob
. Blob.prototype.stream()
- Transforms the
File
into aReadableStream
that can be used to read theFile
contents. Blob.prototype.text()
- Transforms the
File
into a stream and reads it to completion. It returns a promise that resolves with aUSVString
(text). Blob.prototype.arrayBuffer()
- Transforms the
File
into 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.