0

我正在开发一个应该支持 IE10 的网页。我的用户应该能够下载安装文件 (.exe),但我会更新这个文件,以便它有版本。假设文件名是file.exe但文件的链接就像

<url>/file.exe?v1.1.21.0

在这里,其他浏览器(Chrome、Firefox、ie8、ie9)很好地下载了该文件,但 ie10 将其下载为file.0(可能是因为 url 中的问号)。下载后,当我将其重命名为file.exe时,它​​作为 exe 文件可以很好地工作,但我当然不能指望用户使用它。我也不想从 url 中删除版本号,因为那样的话,它可能会下载保留在缓存中的旧文件等。是否有解决方法,下载具有正确名称的文件?

4

1 回答 1

0

您需要发送Content-Disposition包含正确文件名的标题。

Content-Disposition: attachment; filename=file.exe

如果您正在运行 Apache 服务器,请查看以下内容:https ://serverfault.com/questions/101948/how-to-send-content-disposition-headers-in-apache-for-files

更新

这是一个例子.htaccess

SetEnvIf Request_URI "^/(file\.exe)$" FILENAME=$1
Header set "Content-disposition" "attachment; filename=%{FILENAME}e" env=FILENAME
UnsetEnv FILENAME

Content-Disposition只会在请求 URI 为的情况下添加标头/file.exe(将其更改为您的需要),因此可以安全地添加它,以防目录中还有其他不应该受到影响的文件。

于 2013-06-27T23:42:56.213 回答