<a href="path/to/file/filename.xxx" download="filename.xxx">filename</a>'
当我单击链接时,应该下载我的 filename.xxx。
它在铬中完美运行。但在 Internet Explorer 中,它打开文件而不是下载。可能是什么问题呢?是否需要添加任何属性以使其在 ie 中工作。
而且我还需要一个适用于所有浏览器的文件下载示例。
<a href="path/to/file/filename.xxx" download="filename.xxx">filename</a>'
当我单击链接时,应该下载我的 filename.xxx。
它在铬中完美运行。但在 Internet Explorer 中,它打开文件而不是下载。可能是什么问题呢?是否需要添加任何属性以使其在 ie 中工作。
而且我还需要一个适用于所有浏览器的文件下载示例。
IE 不支持下载属性(请参阅http://caniuse.com/#search=download%20attribute)。
这表明只有 firefox、chrome、opera 和最新版本的黑莓浏览器支持下载属性。
对于其他浏览器,您需要使用更传统的方法来强制下载。也就是说,服务器端代码需要设置适当的 Content-Type 和 Content-Disposition 标头来告诉(或根据您的观点欺骗)浏览器下载项目。标头应如下所示:
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
(感谢antyrat复制和粘贴标题)
它应该固定在服务器端。您的服务器应返回此文件类型的此标头:
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
对于 apache2 服务器:
AddType application/octect-stream .ova
文件位置取决于 Apache2 的特定版本——我们的位于 /etc/apache2/mods-available/mime.conf
参考:
https://askubuntu.com/questions/610645/how-to-configure-apache2-to-download-files-directly
这不是代码问题。这是您的默认 IE 设置
要更改“始终打开”设置:
编辑:如果你问我,我不会对代码进行任何更改,而是添加以下文本“ Internet Explorer 用户:要下载文件,”右键单击“链接并点击”目标另存为“下载文件。”
编辑 2:此解决方案将非常适合您。它是我刚刚从另一个答案中复制的解决方案。我不想把它当作我自己的
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
但是,您必须确保指定您允许的文件类型。您在帖子中提到您希望任何类型的文件都使用此功能。这将是一个问题。
例如。如果您的站点有图像并且最终用户单击这些图像,那么它们将被下载到他的计算机上,而不是在新页面中打开。明白了。所以你需要指定文件扩展名。
这一定是http头的问题。
请参阅此处: 文件下载的 HTTP 标头
服务器应该告诉您的浏览器通过发送
Content-Type: application/octet-stream;
Content-Disposition: attachment;
在标题中
众所周知,Internet Explorer 存在 HTTP 标头问题。尝试编辑服务器的.htaccess
文件(如果您使用 Apache)并包含以下规则:
# IE: force download of .xxx files
AddType application/octect-stream .xxx
<Files *.xxx>
ForceType application/octet-stream
Header Set Content-Disposition attachment
</Files>
压缩您的文件 (.zip),IE 将为用户提供打开或下载文件的选项。
你可以在你的 http-Header 中配置它
httpResponse.setHeader("Content-Type", "application/force-download");
httpResponse.setHeader("Content-Disposition",
"attachment;filename="
+ "MyFile.pdf");