--- title: FileReader slug: Web/API/FileReader tags: - API - DOM - File API - Files - NeedsTranslation - Reference - TopicStub - WebAPI translation_of: Web/API/FileReader ---
The FileReader object lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using {{domxref("File")}} or {{domxref("Blob")}} objects to specify the file or data to read.
File objects may be obtained 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 DataTransfer object, or from the mozGetAsFile() API on an {{domxref("HTMLCanvasElement")}}.
FileReader FileReader();
See Using files from web applications for details and examples.
FileReader. This will be one of the {{anch("State constants")}}.Note: As FileReader inherits from {{domxref("EventTarget")}}, all those events can also be listened for by using the {{domxref("EventTarget.addEventListener()","addEventListener")}} method.
EMPTY : 0 : No data has been loaded yet.LOADING : 1 : Data is currently being loaded.DONE : 2 : The entire read request has been completed.readyState will be DONE.result attribute contains an {{domxref("ArrayBuffer")}} representing the file's data.result attribute contains the raw binary data from the file as a string.result attribute contains a data: URL representing the file's data.result attribute contains the contents of the file as a text string.| Specification | Status | Comment |
|---|---|---|
| {{SpecName("File API", "#FileReader-interface", "FileReader")}} | {{Spec2("File API")}} | Initial definition |
{{CompatibilityTable}}
| Feature | Firefox (Gecko) | Chrome | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | {{CompatGeckoDesktop("1.9.2")}}[1] | 7 | 10[2] | 12.02[3] | 6.0.2 |
| Feature | Firefox Mobile (Gecko) | Android | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|
| Basic support | 32 | 3 | 10 | 11.5 | 6.1 |
[1] Prior to Gecko 2.0 beta 7 (Firefox 4.0 beta 7), all {{domxref("Blob")}} parameters below were {{domxref("File")}} parameters; this has since been updated to match the specification correctly. Prior to Gecko 13.0 {{geckoRelease("13.0")}} the FileReader.error property returned a {{domxref("FileError")}} object. This interface has been removed and FileReader.error is now returning the {{domxref("DOMError")}} object as defined in the latest FileAPI draft.
[2] IE9 has a File API Lab.
[3] Opera has partial support in 11.1.