如何使用一个HTTP请求下载多个文件?

zak*_*rya 45 browser http multipart

使用案例:用户点击网页上的链接 - 繁荣!加载位于其文件夹中的文件.
我尝试使用multipart/mixed消息打包文件,但它似乎只适用于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--
Run Code Online (Sandbox Code Playgroud)

谢谢

PS否,压缩文件不是一个选项

And*_*ore 35

压缩是唯一可以在所有浏览器上获得一致结果的选项.如果它不是一个选项,因为你不知道拉链可以动态生成,那么它们可以.如果它不是一个选项,因为你对zip文件有怨恨,那么......

MIME/multipart用于向HTTP服务器发送电子邮件和/或POST.它从未打算在HTTP事务的客户端接收和解析.有些浏览器确实实现了它,有些浏览器却没有.

作为另一种选择,您可以使用JavaScript脚本打开Windows下载单个文件.或者Java Applet(在机器上需要Java Runtimes,如果它是一个企业应用程序,那应该不是问题[因为NetAdmin可以在工作站上部署它]),它会将文件下载到用户选择的目录中.

  • @Einstein:我想念了我原来的陈述,因为我认为人们知道multipart/mixed和multipart/form-data之间的区别.同样,multipart/*从未打算在HTTP事务的客户端接收和解析.它在文件上载期间在客户端创建,并在服务器端接收和解析. (8认同)
  • @zakovyrya:让我重新说一下最后的陈述.多部分消息从未打算在HTTP事务的客户端接收和解析. (3认同)
  • 压缩不是一个选项,因为要求用户在下载后不执行其他操作。您关于多部分消息不适用于 HTTP 传输的说法毫无意义。例如,使用 multipart/form-data 上传多个文件。我不明白为什么应该禁止二进制下载多部分消息 (2认同)