<a href="path/to/file/filename.xxx" download="filename.xxx">filename</a>'
当我点击链接时,应该下载我的文件名.xxx。
在 Chrome 中完美运行。但在 Internet Explorer 中,它会打开文件而不是下载。可能的问题是什么?是否有需要添加的属性使其在 ie 中工作?
并且我需要一个适用于所有浏览器的文件下载示例。
<a href="path/to/file/filename.xxx" download="filename.xxx">filename</a>'
当我点击链接时,应该下载我的文件名.xxx。
在 Chrome 中完美运行。但在 Internet Explorer 中,它会打开文件而不是下载。可能的问题是什么?是否有需要添加的属性使其在 ie 中工作?
并且我需要一个适用于所有浏览器的文件下载示例。
download属性在IE中不受支持(请参见http://caniuse.com/#search=download%20attribute)。
这意味着只有Firefox、Chrome、Opera和最新版本的Blackberry浏览器支持下载属性。
对于其他浏览器,您需要使用更传统的方法来强制下载。也就是说,必须使用服务器端代码设置适当的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\"
AddType application/octect-stream .ova
https://askubuntu.com/questions/610645/how-to-configure-apache2-to-download-files-directly
这必须是HTTP头的问题。
请参见此处: 文件下载的HTTP头
服务器应该通过发送内容告诉您的浏览器下载该文件
Content-Type: application/octet-stream;
Content-Disposition: attachment;
在头文件中
这不是代码问题,而是你的默认IE设置。
更改“始终打开”设置:
编辑:如果你问我,我会在文本中添加以下内容:“Internet Explorer用户:要下载文件,“右键单击”链接,然后点击“另存为”以下载文件。”,而不是在代码中进行任何更改。
编辑2:这个解决方案对你非常完美。它是我从其他答案中拷贝的解决方案,我并不想把它当作我的。
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
然而,您必须确保指定允许的文件类型。您在帖子中提到您想要任何类型的文件,这将是一个问题。
例如,如果您的网站有图像,并且最终用户单击这些图像,则它们将被下载到他的计算机上,而不是在新页面中打开。明白了吗?因此,您需要指定文件扩展名。
众所周知,Internet Explorer 存在 HTTP 标头问题。如果您使用 Apache,请尝试编辑服务器的 .htaccess
文件并包含以下规则:
# 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头中进行配置
httpResponse.setHeader("Content-Type", "application/force-download");
httpResponse.setHeader("Content-Disposition",
"attachment;filename="
+ "MyFile.pdf");