Télécharger Plusieurs fichiers en une seule requête HTTP
comment est-il possible de télécharger plusieurs fichiers en une seule requête HTTP?
ce que je veux dire c'est comme quand vous avez plusieurs pièces jointes et vous sélectionnez ce que vous souhaitez télécharger, puis appuyez sur télécharger, donc ils seront automatiquement téléchargés et vous n'avez pas à cliquer sur chacun manuellement.
je suis à l'aide de PHP en tant que serverside srcipting.
OriginalL'auteur bogha | 2010-02-25
Vous devez vous connecter pour publier un commentaire.
Il est possible d'envoyer un plusieurs parties de la réponse HTTP:
Mais depuis que Firefox est le seul navigateur que je le connais à l'appui de ces multipart réponses (en dehors de multipart/byterange), vous devez utiliser une archive de format de fichier pour ce but.
OriginalL'auteur Gumbo
Qui est pratiquement pas utilisable en raison de la mauvaise prise en charge du navigateur. Vous pouvez les emballer dans un tar ou zip fichier à côté serveur et servir le fichier d'archive.
Plus de précisions 🙂 BTW, puisque les développeurs de navigateurs sont appuyés contre plus de public, des trucs comme des éléments html5 et CSS3, je doute que l'on va voir une adoption généralisée de ce n'importe quand bientôt. Bon de voir que FF mis en œuvre.
OriginalL'auteur Ekin Koc
Je pense qu'il n'est pas possible, car chaque requête HTTP n'a qu'un seul URI.
Correct. HTTP demandes ont un début et une fin. Vous pourriez probablement abus du protocole par la rédaction d'un client spécial et de servir les fichiers en un seul fichier (un peu comme une
tar
fichier ou juste un MIMEmultipart
), mais nous ne serions pas parler d'une pure HTTP solution qui fonctionne sur tous les navigateurs plus.OriginalL'auteur metrobalderas
Vous pouvez compresser le fichier avec PHP, serverside, et demande le fichier ou le retour à partir de votre script en paramètre les en-têtes appropriés, voir
ZipArchive
de la classeOu vous créer un client spécial qui peut analyser votre auto-spécifié le format de message (un flash app, un plugin) - mais si votre client est tout simplement votre navigateur, vous obtiendrez une réponse avec un contenu fixe-longueur à partir du serveur.
OriginalL'auteur initall
Ne sais pas à propos d'une requête HTTP, mais si vous voulez tout à la fois, vous pouvez les parcourir en boucle lors du changement de la
header('Location:')
pour chacun d'entre eux alors redirigé vers le téléchargement immédiat de script. Cependant, que serait redondant, et laid; je pense que le meilleur moyen serait de zip de tous, il ya des instructions sur la façon de le faire dans le La Documentation PHP.OriginalL'auteur casraf
Je suis à l'aide de plusieurs invisible des iframes pour déclencher plusieurs téléchargements à la fois. Il n'y aura plus d'une requête HTTP, mais l'effet sera ce que vous avez décrit.
La plupart des navigateurs de demander à l'utilisateur s'il veut autoriser les téléchargements multiples (ceci pour éviter de laisser site web spamming sur le système de fichiers). Aussi, vous devez vous assurer que le fichier sera effectivement téléchargé, et pas seulement affiché à l'intérieur de l'iframe invisible (par exemple en utilisant
header('Content-disposition: attachment');
à l'intérieur du script PHP desservant le fichier).Dans ma solution que j'utilise JavaScript pour changer la src après chaque fichier est téléchargé, afin que les fichiers de la charge de façon séquentielle et mon serveur est là pour gérer le nombre de demandes à la fois. Mais cette solution nécessite l'AJAX et c'est beaucoup plus compliqué.
OriginalL'auteur stepmuel
Peut-être vous pouvez utiliser JS pour ouvrir plusieurs popups chaque chargement d'une URL de téléchargement. J'espère que c'est le seul moyen..
OriginalL'auteur Sathesh