Laden Sie Mehrere Dateien in einem HTTP-request
wie ist es möglich, laden Sie mehrere Dateien in einem HTTP-request?
was ich meine, es ist, wie wenn Sie mehrere Anhänge haben und Sie auswählen, was Sie herunterladen möchten, und drücken Sie dann herunterladen, so dass Sie automaticcaly heruntergeladen und Sie nicht haben, klicken Sie auf jede manuell.
ich bin mit PHP als serverseitige srcipting.
InformationsquelleAutor bogha | 2010-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist schickt eine multipart-Antwort in HTTP:
Aber da der Firefox ist der einzige browser, den ich kenne, darüber zu unterstützen, wie multipart-Reaktionen (abgesehen von multipart/byterange) verwenden, sollten Sie einige Archiv-Datei-format für diesen Zweck.
InformationsquelleAutor Gumbo
Ist praktisch nicht nutzbar wegen mangelhafter browser-Unterstützung. Sie können packen Sie Sie in ein tar-oder zip-Datei auf server-Seite und dienen der Archiv-Datei obwohl.
Mehr Aufklärung dann 🙂 BTW, da die browser-Entwickler sich gegen mehrere öffentliche Sachen wie html5-Elemente und CSS3 -, ich bezweifle, dass wir sehen werden, eine weit verbreitete Annahme dieser bald. Gut zu sehen, dass FF implementiert es aber.
InformationsquelleAutor Ekin Koc
Ich denke, es ist nicht möglich, da jeder HTTP-Anforderung hat nur eine URI.
Richtig. HTTP-Anfragen, die haben einen bestimmten Anfang und Ende. Wahrscheinlich könnten Sie missbrauchen das Protokoll, indem er eine spezielle client und Dienst die Dateien als eine Datei (ähnlich wie eine
tar
Datei oder einfach nur ein MIME -multipart
), aber dann würden wir nicht darüber reden, eine Reine HTTP-Lösung, die funktioniert in allen Browsern nicht mehr.InformationsquelleAutor metrobalderas
Können Sie die zip-Datei mit PHP serverside, und fordern Sie die Datei oder es zurückgeben in Ihrem Skript, indem Sie die entsprechende Header, siehe
ZipArchive
KlasseOder Sie erstellen ein spezielles Programm, das analysieren Ihrer selbst angegebenen message-format (flash-app, ein plugin) - aber wenn dein client einfach Ihren browser erhalten Sie eine Antwort mit einem festen Inhalt-Länge vom server.
InformationsquelleAutor initall
Weiß nicht über einen HTTP-request, aber wenn Sie wollen, um Sie alle auf einmal können Sie mit einer Schleife durch Sie, während Sie die
header('Location:')
für jeden von Ihnen, während der Umleitung auf den download-Skript. Obwohl, dass wäre überflüssig und hässlich; ich denke, der beste Weg wäre, um zip-Sie alle gibt es eine Anleitung, wie Sie so in der In der PHP-Dokumentation.InformationsquelleAutor casraf
Ich bin mit mehreren unsichtbaren iframes zum auslösen mehrere downloads auf einmal. Es wird mehr als eine HTTP-Anforderung, aber die Wirkung wird sein, was Sie beschrieben.
Den meisten Browsern wird der Benutzer aufgefordert, wenn Sie möchten, dass mehrere downloads (dies ist zu verhindern, lassen, website-spamming das Datei-system). Auch Sie müssen sicherstellen, dass die Datei tatsächlich heruntergeladen werden, und das nicht nur innerhalb der unsichtbaren iframe (z.B. durch die Verwendung
header('Content-disposition: attachment');
innerhalb des PHP-Skript portion der Datei).In meiner Lösung verwende ich JavaScript zum ändern des src nach jeder Datei heruntergeladen wird, sodass die Dateien nacheinander laden und mein server zu handhaben, weniger Anfragen auf einmal. Aber diese Lösung erfordert AJAX und ist viel komplizierter.
InformationsquelleAutor stepmuel
Werden kann, können Sie JS zum öffnen von popups jedem laden eine download-URL. Ich hoffe, das ist die einzige Möglichkeit..
InformationsquelleAutor Sathesh