如何解决Internet Explorer正在修改下载文件名
|| 我在IE8上遇到问题,其中带有查询字符串的URL在下载时受到损坏。 特别是类似http://domain.com/software/Software%202.1%20Beta.exe?AWSAccessKeyId=1HCB7Z221V5CV2K1ZDG2&Expires=1307910775&Signature=iQ11pHtVrFS6Up171MI1%2BK3ErPo%3D
导致IE8为名为的文件提供文件下载通知
Software 2.1%20Beta[1].exe
我完全不知道为什么IE会将第一个\'%20 \'正确地转换为空格,但是第二个%20
保持原样,而扩展名被删除并追加了[1]
。
删除尾随查询字符串不是一种选择(过期的S3链接)。你们对解决这种疯狂有什么建议吗?我的URI编码有问题吗?
解决方法
啊哈!
通过添加非标准的HTTP Content-Disposition标头来解决此问题,除了完全可憎之外,IE还使用它来覆盖其他任何自动命名因素。
Content-Disposition: attachment; filename=\"My Program 2.1.0 Beta.exe\"
Content-Disposition采用ISO-Latin编码的文件名,即没有HTML编码的废话,但从技术上讲也没有UTF8字符,对我来说这不是问题。
事实证明,您可以从AWS管理控制台的文件浏览器进行指定。只希望它有某种方法可以自动提供Content-Disposition标头,而不必为我提供的每一次下载>烦恼。
编辑:
我说得太早了。亚马逊为此添加了一项功能:http://docs.amazonwebservices.com/AmazonS3/latest/API/index.html?RESTObjectGET.html,其中用户可以手动请求使用特定的Content-Disposition标头提供文件意味着亚马逊和AWS团队的确做到了!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。