Internet Explorer正在管理下载文件名

时间:2011-06-12 19:38:34

标签: internet-explorer html-encode

我在使用IE8时遇到问题,其中带有查询字符串的网址在下载时被破坏。

特别是像

这样的网址
http://domain.com/software/Software%202.1%20Beta.exe?AWSAccessKeyId=1HCB7Z221V5CV2K1ZDG2&Expires=1307910775&Signature=iQ11pHtVrFS6Up171MI1%2BK3ErPo%3D

是否导致IE8为调用的文件提供文件下载通知 Software 2.1%20Beta[1].exe

我完全不知道为什么第一个'%20'被IE正确地翻译成一个空格,但第二个%20保持原样,而扩展名被删除并且{{1附加。

删除尾随查询字符串不是一个选项(过期S3链接)。你们有什么建议来解决这个疯狂吗?我的URI编码有问题吗?

1 个答案:

答案 0 :(得分:3)

啊哈!

通过添加非标准HTTP Content-Disposition标头解决,除了完全可憎之外,IE还使用它来覆盖任何其他自动命名因素。

Content-Disposition: attachment; filename="My Program 2.1.0 Beta.exe"

Content-Disposition采用ISO-Latin编码的文件名,即没有HTML编码废话,但从技术上讲也没有UTF8字符,这对我来说不是问题。

事实证明,您可以从AWS管理控制台的文件浏览器中指定。只希望有一些方法可以自动提供Content-Disposition标题,而不必为每个我正在服务的下载提供支持>。<

编辑:

aaaa我说得太早了。亚马逊为此添加了一项功能:http://docs.amazonwebservices.com/AmazonS3/latest/API/index.html?RESTObjectGET.html其中一个人可以手动请求使用特定的Content-Disposition标头提供该文件,这意味着亚马逊和AWS团队确实摇滚!