--- title: File slug: Web/API/File translation_of: Web/API/File ---
{{APIRef}}

ONGOING 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 {{domxref("FileList")}} object returned as a result of a user selecting files using the {{HTMLElement("input")}} element, from a drag and drop operation's {{domxref("DataTransfer")}} object, or from the mozGetAsFile() API on an {{domxref("HTMLCanvasElement")}}. In Gecko, privileged code can create File objects representing any local file without user interaction (see {{anch("Implementation notes")}} for more information.)

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

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

{{InheritanceDiagram}}

Constructor

{{domxref("File.File", "File()")}}
Returns a newly constructed File.

Properties

{{domxref("File.lastModified")}} {{readonlyinline}}
Returns the last modified time of the file, in millisecond since the UNIX epoch (January 1st, 1970 at Midnight).
{{domxref("File.lastModifiedDate")}} {{readonlyinline}} {{deprecated_inline}} {{gecko_minversion_inline("15.0")}}
Returns the last modified Date of the file referenced by the File object.
{{domxref("File.name")}} {{readonlyinline}}
Returns the name of the file referenced by the File object.
{{domxref("File.webkitRelativePath")}} {{readonlyinline}} {{non-standard_inline}}
Returns the path the URL of the {{domxref("File")}} is relative to.

File implements {{domxref("Blob")}}, so it also has the following properties available to it:

{{domxref("File.size")}} {{readonlyinline}}
Returns the size of the file.
{{domxref("File.type")}} {{readonlyinline}}
Returns the MIME type of the file.

Methods

The File interface doesn't define any methods, but inherits methods from the {{domxref("Blob")}} interface:

{{domxref("Blob.slice()", "Blob.slice([start[, end[, contentType]]])")}}
Returns a new Blob object containing the data in the specified range of bytes of the source Blob.

Specifications

Specification Status Comment
{{SpecName('File API')}} {{Spec2('File API')}} Initial definition

Browser compatibility

{{CompatibilityTable}}
Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 13 {{CompatVersionUnknown}} {{CompatGeckoDesktop("1.9")}}[1]
{{CompatGeckoDesktop("7")}}
10.0 11.5 6.0
name {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatGeckoDesktop("1.9.2")}} 11.0 {{CompatUnknown}} {{CompatUnknown}}
lastModifiedDate {{deprecated_inline}} {{CompatUnknown}} {{CompatNo}} {{CompatGeckoDesktop("15")}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
webkitRelativePath {{non-standard_inline}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatGeckoDesktop("49")}} {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
size {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} 11.0 {{CompatUnknown}} {{CompatUnknown}}
Feature Android Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support {{CompatNo}} {{CompatVersionUnknown}} {{CompatGeckoMobile("1.9")}}[1]
{{CompatGeckoMobile("7")}}
{{CompatNo}} 11.1 6.0
name {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatGeckoMobile("1.9.2")}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
lastModifiedData {{deprecated_inline}} {{CompatUnknown}} {{CompatNo}} {{CompatGeckoMobile("15")}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
webkitRelativePath {{non-standard_inline}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatGeckoMobile("49")}} {{CompatUnknown}} {{CompatVersionUnknown}}

{{CompatVersionUnknown}}

size {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}

[1] Non-standard implementation.

Implementation notes

See also