Comment obtenir le répertoire de dossiers à partir de L'entrée HTML de type "file" ou de toute autre façon?

j'ai Donc une forme de base d'entrée avec le type "file" cependant, je veux que l'utilisateur puisse sélectionner l'emplacement du dossier et non un fichier.

Comment puis-je obtenir cette entrée pour sélectionner un dossier et non un fichier, ou y a-t-il une autre façon de le faire?

43
demandé sur hjpotter92 2012-10-18 00:03:22

3 réponses

est tombé sur cette page aussi bien, et a ensuite découvert que c'est possible avec juste javascript (pas de plugins comme ActiveX ou Flash), mais juste dans chrome:

https://plus.google.com / +AddyOsmani / posts / Dk5UhZ6zfF3

essentiellement, ils ont ajouté la prise en charge d'un nouvel attribut sur l'élément d'entrée de fichier"webkitdirectory". Vous pouvez l'utiliser comme ceci:

<input type="file" id="ctrl" webkitdirectory directory multiple/>

il vous permet de sélectionnez les répertoires. L'attribut multiple est une bonne solution de rechange pour les navigateurs qui prennent en charge la sélection de plusieurs fichiers, mais pas la sélection de répertoire.

lorsque vous sélectionnez un répertoire, les fichiers sont disponibles via l'objet dom pour le contrôle (document.getElementById('ctrl')), tout comme ils le sont avec l'attribut multiple. Les navigateurs ajoutent tous les fichiers du répertoire sélectionné à cette liste de façon récursive.

vous pouvez déjà ajouter l'attribut directory comme Eh bien, au cas où cela se normalise à un moment donné (ne pouvait pas trouver d'informations à ce sujet)

50
répondu bwindels 2013-05-27 14:08:33

vous êtes très probablement en train de regarder en utilisant un contrôle flash/silverlight/activeX. La commande <input type="file" /> ne gère pas ça.

si cela ne vous dérange pas que l'utilisateur sélectionne un fichier comme moyen d'obtenir son répertoire, vous pouvez être en mesure de vous lier à l'événement change de ce contrôle, puis de supprimer la partie nom de fichier et de sauvegarder le chemin quelque part--mais c'est à peu près aussi bon qu'il obtient.

Gardez à l'esprit que les pages web sont conçues pour interagir avec les serveurs. Rien sur la fourniture d'un répertoire local à un serveur distant n'est" typique " (un serveur ne peut pas y accéder, alors pourquoi le demander?); toutefois, les fichiers sont un moyen de transmettre de l'information de façon sélective.

1
répondu Brad Christie 2012-10-17 20:06:02

Même si c'est une vieille question, cela peut aider quelqu'un.

nous pouvons choisir plusieurs fichiers lors de la navigation pour un fichier en utilisant "multiple "

<input type="file" name="datafile" size="40"  multiple> 
-3
répondu Sai 2017-03-21 06:29:24