web-dev-qa-db-ja.com

1つのHTTPリクエストで複数のファイルをダウンロードする方法は?

ユースケース:ユーザーがWebページ上のリンクをクリックする-ブーム!彼のフォルダーにあるファイルの負荷。
multipart/mixed message を使用してファイルをパックしようとしましたが、Firefoxでのみ機能するようです

これは私の応答がどのように見えるかです:

HTTP/1.0 200 OK
Connection: close
Date: Wed, 24 Jun 2009 23:41:40 GMT
Content-Type: multipart/mixed;boundary=AMZ90RFX875LKMFasdf09DDFF3
Client-Date: Wed, 24 Jun 2009 23:41:40 GMT
Client-Peer: 127.0.0.1:3000
Client-Response-Num: 1
MIME-Version: 1.0
Status: 200

--AMZ90RFX875LKMFasdf09DDFF3 
Content-type: image/jpeg 
Content-transfer-encoding: binary 
Content-disposition: attachment; filename="001.jpg" 

<< here goes binary data >>--AMZ90RFX875LKMFasdf09DDFF3 
Content-type: image/jpeg 
Content-transfer-encoding: binary 
Content-disposition: attachment; filename="002.jpg" 

<< here goes binary data >>--AMZ90RFX875LKMFasdf09DDFF3 
--AMZ90RFX875LKMFasdf09DDFF3--

ありがとうございました

追伸いいえ、zipファイルはオプションではありません

44
zakovyrya

すべてのブラウザで一貫した結果が得られる唯一のオプションは、Zippingです。 zipを動的に生成できることを知らないためにオプションではない場合は、そうすることができます。 Zipファイルに対するgrみがあるため、それがオプションでない場合は、まあ..

MIME/multipartは、電子メールメッセージおよび/またはPOST HTTPサーバーへの送信用です。HTTPトランザクションのクライアント側で受信および解析されることを意図していませんでした。他の人はそうではありません。

別の方法として、個々のファイルをダウンロードするウィンドウを開くJavaScriptスクリプトを使用できます。または、Java Applet(Javaマシン上のランタイム、エンタープライズアプリケーションの場合は、NetAdminが展開できるため、それは問題ではないはずです。ワークステーション上])、ユーザーが選択したディレクトリにファイルをダウンロードします。

34
Andrew Moore

これを10年以上前に4日間ネットスケープで行ったことを忘れないでください。それはあなたがやっていることのような境界を使用し、その時点で他のブラウザではまったく動作しませんでした。

それはあなたの質問には答えませんが、少なくとも同じTCP接続を再利用して複数の画像をダウンロードできるように、HTTP 1.1はリクエストのパイプライン化をサポートしています。

1
Einstein

Base64エンコードを使用して(非常に小さな)画像をHTMLドキュメントに埋め込むことができますが、ブラウザー/サーバーの観点からは、技術的には1つのドキュメントのみを送信しています。たぶんこれはあなたがやろうとしていることですか?

Base64を使用してHTMLに画像を埋め込む

編集:私のGoogle検索で見つかったほとんどのメソッドはFirefoxのみをサポートし、iEはサポートしていないことに気付きました。

0
Roy Rico