web-dev-qa-db-fra.com

Obtenir le type d'entrée = valeur "fichier" lorsque plusieurs fichiers sont sélectionnés

Duplicate possible:
Récupération des noms de fichiers d’un contrôle de téléchargement multi-fichiers avec javascript

A partir de HTML5, type d'entrée "fichier" permet aux utilisateurs de choisir plusieurs fichiers en ajoutant le multiple = "multiple":

<input type="file" multiple="multiple" />

Ma question est la suivante: comment puis-je obtenir la valeur de cette entrée? Lorsque vous utilisez la valeur., Il ne renvoie que le nom du fichier du premier fichier sélectionné, mais lorsque vous en choisissez plusieurs, je ne peux pas en afficher les autres.

Ce que j'ai:

<input type="file" multiple="multiple" onchange="alert(this.value)"
     onmouseout="alert(this.value) />

qui, comme je vous l'ai dit, ne montre que le nom d'un des fichiers sélectionnés.

NOTE: Je ne veux pas éditer la valeur (je sais que ce n'est pas possible) seulement le nom des fichiers

Merci!

49
spuas

Les fichiers sélectionnés sont stockés dans un tableau: [input].files

Par exemple, vous pouvez accéder aux éléments

// assuming there is a file input with the ID `my-input`...
var files = document.getElementById("my-input").files;

for (var i = 0; i < files.length; i++)
{
 alert(files[i].name);
}

Pour les personnes jQuery-comfortable, rien de plus simple

// assuming there is a file input with the ID `my-input`...
var files = $("#my-input")[0].files;

for (var i = 0; i < files.length; i++)
{
 alert(files[i].name);
}
93
foxy

Vous utilisez input.files propriété . C'est une collection d'objets File et chaque fichier a une propriété name:

onmouseout="for (var i = 0; i < this.files.length; i++) alert(this.files[i].name);"
11
Wladimir Palant