5546 sujets

Sémantique web et HTML

Bonjour à tous.

J'ai un champ input de type file avec une sélection de fichier multiple.

Une fois la sélection faite, je fais une vérification sur les extensions des fichiers en JS:
•découpage de la valeur du champ à chaque virgule => split qui me permet d'avoir un tableau de chemin,
•puis recherche de l'extension dans chaque ligne du tableau précédent.

Mais voila j'ai un problème, le caractère qui sépare mes différents chemins de fichier (dans la valeur de l'input) est une virgule.

Or il est possible d'avoir des virgules dans les noms des fichiers.

Du coup quand je découpe ma valeur pour en faire un tableau, je peux avoir chemin/fichier1.pdf,chemin/fichier1,bis.pdf,chemin/fichier2.pdf

ce qui va donner:
•chemin/fichier1.pdf
•chemin/fichier1
•bis.pdf
•chemin/fichier2.pdf

Est ce qu'il est possible de changer le caractère de séparation des fichiers dans l'input type file ?

Je vous remercie par avance pour votre aide. Smiley smile
Salut,
je ne comprends pas bien comment tu fais pour récupérer les noms de fichiers ?
Si tu pouvais donner un petit bout de code.

A priori une simple boucle sur la liste des fichiers avec .name suffit pour récupérer chaque nom un par un.
<input id="Upload" type="file" multiple onchange="NomsFichiers();" >
<br/>
<span id="NomsFichiers"></span>

function NomsFichiers() {
  var Fichiers = document.getElementById("Upload").files;
      
  for (var i = 0; i < Fichiers.length; i++) {
    console.log(Fichiers[i].name);
    document.getElementById("NomsFichiers").innerHTML += Fichiers[i].name+" <br/>";
  }
}

Exemple ici :
https://jsfiddle.net/uhpabyzq/
Modifié par mathieu1004 (31 May 2017 - 13:07)
Meilleure solution
Super c'est la solution!

En fait j'utilise la ligne suivante pour récupérer les noms de fichiers:
document.getElementById(identifiantChampsFichier).value;


Mais du coup le
Fichiers[i].name
marche beaucoup mieux pour ce que je veux faire.

Merci beaucoup ! Smiley biggrin
Modifié par aurelieG (31 May 2017 - 13:29)
En complément: ça ne m'étonnerais pas que le contenu de .value soit différent selon l'OS et le navigateur.
Par exemple sous windows, pour spécifier plusieurs fichiers dans une boîte de dialogue standard, la syntaxe est "fichier 1" "fichier 2" "fichier 3"
Je ne serais pas surpris qu'on retrouve cette syntaxe sur IE.

A noter que .files est supporté sur tous les navigateurs récents depuis IE10.