使用案例:用户点击网页上的链接 - 繁荣!加载位于其文件夹中的文件 我尝试使用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--
谢谢你
P.S。不,压缩文件不是一个选项
答案 0 :(得分:33)
Zipping是唯一可以在所有浏览器上获得一致结果的选项。如果它不是一个选项,因为你不知道拉链可以动态生成,那么它们可以。如果它不是一个选项,因为你对zip文件有好心,那么......
MIME / multipart用于向HTTP服务器发送电子邮件和/或POST。它从未打算在HTTP事务的客户端接收和解析。有些浏览器确实实现了它,有些浏览器没有实现它。
作为另一种选择,您可以使用JavaScript脚本打开Windows下载单个文件。或者Java Applet(在机器上需要Java Runtimes,如果它是一个企业应用程序,那应该不是问题[因为NetAdmin可以在工作站上部署它]),它会将文件下载到用户选择的目录中。
答案 1 :(得分:1)
记得在10年前的netscape 4天内做这个&gt;它使用的边界就像你在做什么,当时在其他浏览器上根本不起作用。
虽然它没有回答你的问题,但HTTP 1.1支持请求流水线操作,因此至少可以重复使用相同的TCP连接来下载多个图像。
答案 2 :(得分:0)
您可以使用base64编码将(非常小的)图像嵌入到HTML文档中,但是从浏览器/服务器的角度来看,您在技术上仍然只发送1个文档。也许这就是你打算做的?
编辑:我刚刚意识到我在谷歌搜索中找到的大多数方法只支持firefox,而不支持iE。答案 3 :(得分:0)
您可以使用多个数据 url 制作一个 json。
例如:
{
"stamp.png": "data:image/png;base64,...",
"document.pdf": "data:application/pdf;base64,..."
}