<a href="path/to/file/filename.xxx" download="filename.xxx">filename</a>'
当我点击链接时,我的filename.xxx应该被下载。
它在chrome中完美运行。但在Internet Explorer中,它会打开文件而不是下载。可能是什么问题呢?是否有任何属性需要添加才能使其在ie。
中起作用我还需要一个适用于所有浏览器的文件下载示例。
答案 0 :(得分:18)
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复制和粘贴标题)
答案 1 :(得分:10)
它应该在服务器端修复。您的服务器应该为此文件类型返回此标头:
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
答案 2 :(得分:1)
压缩文件(.zip),IE将为用户提供打开或下载文件的选项。
答案 3 :(得分:1)
对于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
答案 4 :(得分:0)
这必须是http标题。
见这里: HTTP Headers for File Downloads
服务器应通过发送
告诉您的浏览器下载文件Content-Type: application/octet-stream;
Content-Disposition: attachment;
标题中的
答案 5 :(得分:0)
这不是代码问题。这是您的默认IE设置
更改“始终打开”设置:
编辑:如果您问我,而不是在代码中进行任何更改,我会添加以下文字“ Internet Explorer用户: 要下载文件,“右键单击”链接,然后点击“将目标另存为”下载文件。“
编辑2:此解决方案将完美适合您。它是我刚刚从另一个答案复制的解决方案。我不是试图把它作为我自己的
传递出去Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
但是,您必须确保指定允许的文件类型。您在帖子中提到过您希望任何类型的文件。这将是一个问题。
对于前。如果您的网站包含图片,并且最终用户点击了这些图片,则会将其下载到计算机上,而不是在新页面中打开。明白了。所以你需要指定文件扩展名。
答案 6 :(得分:0)
这是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>
答案 7 :(得分:-2)
您可以在http-Header中配置它
httpResponse.setHeader("Content-Type", "application/force-download");
httpResponse.setHeader("Content-Disposition",
"attachment;filename="
+ "MyFile.pdf");