FileReader
==========

L'objet **`FileReader`** permet à des applications web de lire le contenu de fichiers (ou de tampons de mémoire brute) de façon asynchrone. On peut ainsi lire le contenu des objets `File` ou `Blob` (qui représentent respectivement un fichier ou des données).

Les objets qui sont des fichiers peuvent être obtenus à partir d'un objet `FileList`, renvoyé lorsque l'utilisateur sélectionne des fichiers grâce à un élément `<input>`, via un glisser-déposer avec un objet `DataTransfer` ou grâce à l'API `mozGetAsFile()` API de `HTMLCanvasElement`.

**Note:** Cette fonctionnalité est disponible via les Web Workers

Constructeur
------------

`FileReader()`

Ce constructeur renvoie un nouvel objet `FileReader`.

Pour plus d'informations et d'exemples, consulter utiliser des fichiers depuis des applications web.

Propriétés
----------

`FileReader.error` (en-US) Lecture seule 

Un objet `DOMError` qui représente l'erreur qui s'est produite lors de la lecture du fichier.

`FileReader.readyState` (en-US) Lecture seule 

Un nombre qui indique l'état du `FileReader`. Cette valeur est l'une des suivantes :

|  |  |  |
| --- | --- | --- |
| `EMPTY` | `0` | Aucune donnée n'a encore été chargée. |
| `LOADING` | `1` | Des données sont en cours de chargement. |
| `DONE` | `2` | La demande de lecture est complètement terminée. |

`FileReader.result` (en-US) Lecture seule 

Le contenu du fichier. Cette propriété est uniquement valide lorsque l'opération de lecture est terminée et le format des données dépend de la méthode utilisée pour l'opération de lecture.

### Gestionnaire d'évènements

`FileReader.onabort` (en-US)

Un gestionnaire pour l'évènement `abort` (en-US). Cet évènement est déclenché à chaque fois que l'opération de lecture est interrompue.

`FileReader.onerror` (en-US)

Un gestionnaire pour l'évènement `error` (en-US). Cet évènement est déclenché à chaque fois qu'il y a une erreur pendant l'opération de lecture.

`FileReader.onload` (en-US)

Un gestionnaire pour l'évènement `load` (en-US). Cet évènement est déclenché à chaque fois qu'une opération de lecture est menée à bien.

`FileReader.onloadstart`

Un gestionnaire pour l'évènement `loadstart` (en-US). Cet évènement est déclenché chaque fois qu'une opération de lecture commence.

`FileReader.onloadend`

Un gestionnaire pour l'évènement `loadend` (en-US). Cet évènement est déclenché chaque fois qu'une opération de lecture est terminée (que ce soit un succès ou un échec).

`FileReader.onprogress`

Un gestionnaire pour l'évènement `progress` (en-US). Cet évènement est déclenché lorsque la lecture du `Blob` est en cours.


**Note :** `FileReader` hérite de l'interface `EventTarget` et tout ces évènements peuvent donc être « écoutés » grâce à la méthode `addEventListener`.

Méthodes
--------

`FileReader.abort()` (en-US)

Cette méthode interrompt l'opération de lecture. Après avoir renvoyé une valeur, l'état `readyState` aura la valeur `DONE`.

`FileReader.readAsArrayBuffer()`

Cette méthode démarre la lecture du contenu pour le blob indiqué. Une fois que la lecture est terminée, l'attribut `result` contient un objet `ArrayBuffer` représentant les données du fichier.

`FileReader.readAsBinaryString()` 
Non-standard

Cette méthode démarre la lecture du contenu pour le blob indiqué. Une fois que la lecture est terminée, l'attribut `result` contient les données binaires brutes sous la forme d'une chaîne de caractères.

`FileReader.readAsDataURL()`

Cette méthode démarre la lecture du contenu pour le blob indiqué. Une fois que la lecture est terminée, l'attribut `result` contient une URL de données qui représente les données du fichier.

`FileReader.readAsText()`

Cette méthode démarre la lecture du contenu pour le blob indiqué. Une fois la lecture terminée, l'attribut `result` contient les données du fichier sous la forme d'une chaîne de caractères.

Spécifications
--------------

| Specification |
| --- |
| File API # APIASynch |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Manipuler des fichiers depuis des applications web
* `File`
* `Blob`