2009-10-01 8 views
2

Je suis dans le besoin de télécharger plus d'un fichier du serveur (PHP) en un seul clic. il est possible de télécharger un fichier mais ne fonctionne pas pour plusieurs fichiers à la fois (supposons que les fichiers sont dans des répertoires diff). J'utilise WAMP, s'il vous plaît aidez-moi.télécharger plus d'un fichier du serveur en un seul clic (PHP, WAMP)

Merci et salutations

tismon

+0

Je pense que vous devez expliquer ce dont vous avez besoin plus en détail. généralement, un serveur télécharge TOUJOURS plusieurs fichiers lorsqu'une page est chargée (images, scripts, etc.). voulez-vous dire plusieurs fichiers de données à enregistrer en série par l'utilisateur - l'un après l'autre ?? –

Répondre

5

Pas tout à fait sûr de ce que vous demandez, si vous demandez un moyen d'obtenir un serveur pour servir plusieurs fichiers à un utilisateur avec une demande, alors vous avez probablement besoin pour aller avec un fichier zip ou un autre format d'archive.

7

Il suffit de compresser les fichiers sur le serveur et d'envoyer l'archive, comme le fait Gmail avec plusieurs pièces jointes. La plupart des systèmes d'exploitation modernes ne devraient pas avoir de difficulté à décompresser le paquet, certains d'entre eux le feront à la volée (sans que l'utilisateur n'ait à faire quoi que ce soit). Je ne connais pas PHP, mais il semble y avoir une bibliothèque zip, voir le examples on PHP’s website.

+1

Assez facile, la méthode la plus * standard *, et certainement beaucoup plus conviviale que de lancer potentiellement des dizaines de boîtes de dialogue Enregistrer sous dans le visage de l'utilisateur. – Wim

1

Vous pouvez envoyer à l'utilisateur un e-mail avec des liens ou même une pièce jointe si les tailles de fichier sont petites.

3

Avec PHP, ce n'est pas possible. Vous ne pouvez servir qu'un seul fichier par requête. Cependant, vous pouvez appeler le navigateur pour télécharger plusieurs fichiers en utilisant un peu JavaScript:

var files = ['fileone.zip', 'filetwo.zip']; 
for (var i = 0; i < files.length; i++){ 
    window.open(files[i], 'Download file'); 
} 

Il est vraiment assez méchant cependant. Je voudrais juste aller avec un zip.


PS. Si vous voulez télécharger des fichiers html avec cette méthode, vous devez envoyer le pour chaque fichier en-tête Content-Disposition, pour assurer que le document ne se contente pas de se rendre dans la fenêtre pop-up donné naissance par window.open:

header('Content-Disposition: attachment; filename="todownload.html"'); 
+1

une bonne info supplémentaire: maintenant, en 2012, il est possible d'obtenir PLUS d'un fichier par requête via le protocole SPDY. – Sliq

2

Vous pourriez créer un IFrame et en Javascript définir la source de l'IFrame à vos différents fichiers de téléchargement. Si vous rencontrez des problèmes de synchronisation avec les téléchargements, vous pouvez essayer un délai de téléchargement ou utiliser plusieurs IFrames (mais ce dernier semble moche).

Questions connexes