2012-07-21 2 views
3

Je cherche un moyen de créer une file d'attente de tri pour un bouton de téléchargement de fichier. Avec le code suivant:File d'attente de téléchargement de fichiers multiples HTML

<input type = 'file' name = 'file[]' multiple = 'multiple' /> 

Les navigateurs modernes vous permettent de sélectionner plusieurs fichiers à télécharger simultanément. Cependant, si vous cliquez à nouveau sur le bouton et choisissez plus de fichiers (disons d'un dossier différent), il supprime les fichiers actuellement sélectionnés. Est-il possible de faire en sorte que le jeu de fichiers nouvellement sélectionné ne remplace pas l'ancien jeu?

+0

Lorsque vous voyez ceci, cela a tendance à être fait par le biais du flash car les entrées de fichiers normales ne permettent que de sélectionner un. – Undefined

+0

Pas nécessairement. Cela peut être fait en utilisant XHR et iFrames (dans les anciens navigateurs). Vois ma réponse. –

Répondre

0

Oui, il y a un moyen que j'ai utilisé.

Écoutez ceci; Lorsque l'utilisateur sélectionne des fichiers, masquez cette entrée avec CSS et générez une autre entrée avec un nom différent. Vous aurez besoin d'une information combien d'entre eux là, pour une telle raison que vous pouvez ajouter une entrée cachée avec la valeur initiale 1, et vous pouvez +1 à chaque fois.

Espérons que cela aide.

+0

Allé avec cela parce que c'est ce qui va travailler pour moi. – Lukas

1

Bien que je ne sois pas sûr de HTML5, les versions antérieures de JS ne vous permettent pas de le faire, pour des raisons de sécurité. Vous ne pouvez pas changer les fichiers que l'utilisateur a choisi de télécharger, sinon vous pouvez changer le chemin du fichier et télécharger tous les fichiers que vous vouliez de leur disque dur (y compris les fichiers de mot de passe, par exemple).

Une solution à cela est d'avoir plusieurs entrées de fichiers, plutôt qu'une seule qui prend plusieurs fichiers. Ajoutez-les dynamiquement lorsque l'utilisateur sélectionne les fichiers à télécharger. Par exemple, vous pouvez ajouter un écouteur onchange à l'entrée de fichier la plus récente et, lorsque l'utilisateur a sélectionné un fichier, supprimer l'écouteur, puis ajouter une autre entrée de fichier (attacher l'écouteur onchange à cette nouvelle entrée de fichier). Bien sûr, vous aurez besoin d'une sorte de schéma de nommage incrémental pour ces entrées, et votre serveur devra gérer le téléchargement résultant.

Questions connexes