FileList
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
On pourra obtenir un objet de type FileList
grâce à la propriété files
d'un objet HTMLInputElement
(qui représente un élément HTML <input>
) du DOM. Un objet FileList
permet d'accéder à la liste des fichiers sélectionnés via un élément <input type="file">
. Il est également utilisé pour manipuler une liste de fichiers déposé dans du contenu web en glisser/déposer. Voir la page sur l'objet DataTransfer
pour plus de détails sur ce deuxième usage.
Tous les nœuds qui sont des éléments <input>
possèdent un attribut files
de type FileList
qui permet d'accéder aux éléments de cette liste. Ainsi, avec le fragment de HTML qui suit :
<input id="fileItem" type="file" />
On pourra utiliser la ligne de code suivante pour récupérer le premier fichier de la liste des fichiers pour ce nœud dans un objet File
:
const file = document.getElementById("fileItem").files[0];
Note :
Cette interface se voulait une tentative de modélisation d'une liste non-modifiable et continue uniquement d'être prise en charge pour ne pas casser le code qui l'utilise encore. Les API plus récentes utilisent des types qui se basent sur le type ECMAScript Array
, afin que les objets puissent être traités comme des tableaux tout en imposant une sémantique additionnelle correspondant à leur utilisation (par exemple, en marquant leurs éléments comme étant en lecture seule).
Propriétés des instances
length
Lecture seule-
Une valeur en lecture seule qui indique le nombre de fichiers dans la liste.
Méthodes des instances
Exemple
Afficher le nom des fichiers
Dans cet exemple, nous allons afficher le nom des fichiers sélectionnés par l'utilisatrice ou l'utilisateur.
HTML
<input id="mesfichiers" multiple type="file" />
<pre class="sortie">Fichiers sélectionnés :</pre>
JavaScript
const sortie = document.querySelector(".sortie");
const fileInput = document.querySelector("#mesfichiers");
fileInput.addEventListener("change", () => {
for (const file of fileInput.files) {
sortie.innerText += `\n${file.name}`;
}
});
Résultat
Spécifications
Specification |
---|
File API # filelist-section |
HTML Standard # dom-input-files-dev |
Compatibilité des navigateurs
BCD tables only load in the browser