我正在开发一个应该支持IE10的网页。我的用户应该能够下载安装文件(.exe),但我会更新这个文件,以便它有版本。假设文件名是 file.exe ,但文件的链接就像
<url>/file.exe?v1.1.21.0
此处,其他浏览器(Chrome,Firefox,ie8,ie9)可以很好地下载文件,但是将其下载为 file.0 (可能是因为网址中的问号)。下载后,当我将其重命名为 file.exe 时,它可以很好地用作exe文件,但当然我不能指望它来自用户。我也不想从网址中删除版本号,因为它可能会下载缓存中剩余的旧文件等。是否有解决方法,下载具有正确名称的文件?
答案 0 :(得分: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
只有在请求URI为Content-Disposition
时才会添加/file.exe
标头(根据您的需要更改),因此可以安全地添加它,以防目录中有其他文件不应该不会受到影响。