1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
---
title: FileReader
slug: Web/API/FileReader
tags:
- API
- File
- Interface
- Référence(2)
translation_of: Web/API/FileReader
---
<div>{{APIRef("File API")}}</div>
<p>L'objet <strong><code>FileReader</code></strong> 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 {{domxref("File")}} ou {{domxref("Blob")}} (qui représentent respectivement un fichier ou des données).</p>
<p>Les objets qui sont des fichiers peuvent être obtenus à partir d'un objet {{domxref("FileList")}}, renvoyé lorsque l'utilisateur sélectionne des fichiers grâce à un élément {{HTMLElement("input")}}, via un glisser-déposer avec un objet <a href="/fr/docs/Web/API/DataTransfer"><code>DataTransfer</code></a> ou grâce à l'API <code>mozGetAsFile()</code> API de {{domxref("HTMLCanvasElement")}}.</p>
<p>{{AvailableInWorkers}}</p>
<h2 id="Constructeur">Constructeur</h2>
<dl>
<dt>{{domxref("FileReader.FileReader", "FileReader()")}}</dt>
<dd>Ce constructeur renvoie un nouvel objet <code>FileReader</code>.</dd>
</dl>
<p>Pour plus d'informations et d'exemples, consulter <a href="/fr/docs/Using_files_from_web_applications">utiliser des fichiers depuis des applications web</a>.</p>
<h2 id="Propriétés">Propriétés</h2>
<dl>
<dt>{{domxref("FileReader.error")}} {{readonlyinline}}</dt>
<dd>Un objet {{domxref("DOMError")}} qui représente l'erreur qui s'est produite lors de la lecture du fichier.</dd>
<dt>{{domxref("FileReader.readyState")}} {{readonlyinline}}</dt>
<dd>Un nombre qui indique l'état du <code>FileReader</code>. Cette valeur est l'une des suivantes :
<table class="standard-table">
<tbody>
<tr>
<td><code>EMPTY</code></td>
<td><code>0</code></td>
<td>Aucune donnée n'a encore été chargée.</td>
</tr>
<tr>
<td><code>LOADING</code></td>
<td><code>1</code></td>
<td>Des données sont en cours de chargement.</td>
</tr>
<tr>
<td><code>DONE</code></td>
<td><code>2</code></td>
<td>La demande de lecture est complètement terminée.</td>
</tr>
</tbody>
</table>
</dd>
<dt>{{domxref("FileReader.result")}} {{readonlyinline}}</dt>
<dd>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.</dd>
</dl>
<h3 id="Gestionnaire_d'évènements">Gestionnaire d'évènements</h3>
<dl>
<dt>{{domxref("FileReader.onabort")}}</dt>
<dd>Un gestionnaire pour l'évènement {{event("abort")}}. Cet évènement est déclenché à chaque fois que l'opération de lecture est interrompue.</dd>
<dt>{{domxref("FileReader.onerror")}}</dt>
<dd>Un gestionnaire pour l'évènement {{event("error")}}. Cet évènement est déclenché à chaque fois qu'il y a une erreur pendant l'opération de lecture.</dd>
<dt>{{domxref("FileReader.onload")}}</dt>
<dd>Un gestionnaire pour l'évènement {{event("load")}}. Cet évènement est déclenché à chaque fois qu'une opération de lecture est menée à bien.</dd>
<dt>{{domxref("FileReader.onloadstart")}}</dt>
<dd>Un gestionnaire pour l'évènement {{event("loadstart")}}. Cet évènement est déclenché chaque fois qu'une opération de lecture commence.</dd>
<dt>{{domxref("FileReader.onloadend")}}</dt>
<dd>Un gestionnaire pour l'évènement {{event("loadend")}}. 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).</dd>
<dt>{{domxref("FileReader.onprogress")}}</dt>
<dd>Un gestionnaire pour l'évènement {{event("progress")}}. Cet évènement est déclenché lorsque la lecture du {{domxref("Blob")}} est en cours.</dd>
</dl>
<div class="note">
<p><strong>Note :</strong> <code>FileReader</code> hérite de l'interface {{domxref("EventTarget")}} et tout ces évènements peuvent donc être « écoutés » grâce à la méthode {{domxref("EventTarget.addEventListener()","addEventListener")}}.</p>
</div>
<h2 id="Méthodes">Méthodes</h2>
<dl>
<dt>{{domxref("FileReader.abort()")}}</dt>
<dd>Cette méthode interrompt l'opération de lecture. Après avoir renvoyé une valeur, l'état <code>readyState</code> aura la valeur <code>DONE</code>.</dd>
<dt>{{domxref("FileReader.readAsArrayBuffer()")}} {{gecko_minversion_inline("7.0")}}</dt>
<dd>Cette méthode démarre la lecture du contenu pour le blob indiqué. Une fois que la lecture est terminée, l'attribut <code>result</code> contient un objet {{domxref("ArrayBuffer")}} représentant les données du fichier.</dd>
<dt>{{domxref("FileReader.readAsBinaryString()")}} {{non-standard_inline}}</dt>
<dd>Cette méthode démarre la lecture du contenu pour le blob indiqué. Une fois que la lecture est terminée, l'attribut <code>result</code> contient les données binaires brutes sous la forme d'une chaîne de caractères.</dd>
<dt>{{domxref("FileReader.readAsDataURL()")}}</dt>
<dd>Cette méthode démarre la lecture du contenu pour le blob indiqué. Une fois que la lecture est terminée, l'attribut <code>result</code> contient une URL de données qui représente les données du fichier.</dd>
<dt>{{domxref("FileReader.readAsText()")}}</dt>
<dd>Cette méthode démarre la lecture du contenu pour le blob indiqué. Une fois la lecture terminée, l'attribut <code>result</code> contient les données du fichier sous la forme d'une chaîne de caractères.</dd>
</dl>
<h2 id="Spécifications">Spécifications</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Spécification</th>
<th scope="col">État</th>
<th scope="col">Commentaires</th>
</tr>
<tr>
<td>{{SpecName("File API", "#dfn-filereader", "FileReader")}}</td>
<td>{{Spec2("File API")}}</td>
<td>Définition initiale.</td>
</tr>
</tbody>
</table>
<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
<p>{{Compat("api.FileReader")}}</p>
<h2 id="Voir_aussi">Voir aussi</h2>
<ul>
<li><a href="/fr/docs/Using_files_from_web_applications">Manipuler des fichiers depuis des applications web</a></li>
<li>{{domxref("File")}}</li>
<li>{{domxref("Blob")}}</li>
</ul>
|