IE10文件url问题

IE10文件url问题,url,cross-browser,versioning,internet-explorer-10,Url,Cross Browser,Versioning,Internet Explorer 10,我正在开发一个支持IE10的网页。我的用户应该能够下载安装文件(.exe),但我将更新此文件,使其具有版本。假设文件名为file.exe,但指向该文件的链接如下 <url>/file.exe?v1.1.21.0 /file.exe?v1.1.21.0 在这里,其他浏览器(Chrome、Firefox、ie8、ie9)很好地下载了该文件,但ie10将其下载为file.0(可能是因为url中有问号)。下载后,当我将其重命名为file.exe时,它可以很好地作为exe文件工作,但我当然

我正在开发一个支持IE10的网页。我的用户应该能够下载安装文件(.exe),但我将更新此文件,使其具有版本。假设文件名为file.exe,但指向该文件的链接如下

<url>/file.exe?v1.1.21.0
/file.exe?v1.1.21.0

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

您需要发送一个包含正确文件名的
内容处置

内容配置:附件;filename=file.exe

如果您正在运行Apache服务器,请查看以下内容:

更新

下面是一个示例
.htaccess

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

只有在请求URI为
/file.exe
时,它才会添加
内容处置
标题(根据需要更改此设置),因此,如果目录中存在其他不应受到影响的文件,则可以安全地添加该标题。

据我所知,这会迫使浏览器弹出“另存为”窗口来保存文件。但是目前,即使我在下载文件时选择了“另存为”选项,它也无法正确下载。默认情况下,它将文件名视为file,并将类型视为0 file(因为最后的“.0”来自版本号)。即使我将tpye更改为“所有文件”(这是唯一的其他选项),它仍将下载为file.0。它根本无法强制浏览器执行任何操作,它只是告诉它将接收什么,浏览器如何处理数据完全取决于浏览器。但是,
附件
内容配置
的目的当然是让浏览器将数据作为下载来处理,而不是内联数据,另外的
文件名
参数是建议的文件名,当然这又取决于浏览器如何处理这些信息,然而,大多数浏览器都尊重标题,并将其用于URL中的文件名,IE10也是如此。试试看,效果很好。