internet-explorer - Internet Explorer 正在破坏下载文件名

标签 internet-explorer html-encode

我在使用 IE8 时遇到问题,其中包含查询字符串的 URL 在下载时被破坏。

特别是像这样的 URL

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

导致 IE8 为名为的文件提供文件下载通知 软件2.1%20Beta[1].exe

我完全不明白为什么第一个“%20”被 IE 正确翻译成空格,但第二个 %20 保持原样,而扩展名被删除并且附加了 [1]

无法删除尾随查询字符串(S3 链接过期)。你们有什么建议来摆脱这种疯狂吗?我的 URI 编码是否有问题?

最佳答案

啊哈!

通过添加非标准 HTTP Content-Disposition header 来解决,该 header 除了完全令人厌恶之外,还被 IE 用来覆盖任何其他自动命名因素。

内容处置:附件; filename="我的程序2.1.0 Beta.exe"

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

事实证明,您可以从 AWS 管理控制台的文件浏览器中指定这一点。只希望有某种方法可以让它自动提供 Content-Disposition header ,而不必为我正在提供的每个下载而硬塞它>。<

编辑:

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

关于internet-explorer - Internet Explorer 正在破坏下载文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6324187/

相关文章:

asp.net-mvc-5 - 我需要在 MVC Razor 中编码属性值吗?

javascript - ASP.NET,JavaScript : silly annoying apostrophe problem

asp.net-mvc - MVC 输入中的 Html 编码

css - Firefox div 对象高度

c# - 处理 IE 填写表单 C#

php - Internet Explorer Content-DIsposition 文件名不起作用

html - mailto 邮件主题行中的汉字

python - Firefox 和 IE9 中的 Django POST 数据问题,但 Chrome 中没有

javascript - SCRIPT438 : Object doesn't support property or method 'create' - THREE. JS 相机\Camera.js

seo - 您能否在 schema.org 微数据值中使用 utf-8 或 HTML 实体转义(十六进制)代码?