文件打开而不是在href链接中的Internet Explorer中下载

时间:2013-07-31 11:16:47

标签: html internet-explorer download

<a href="path/to/file/filename.xxx" download="filename.xxx">filename</a>'

当我点击链接时,我的filename.xxx应该被下载。

它在chrome中完美运行。但在Internet Explorer中,它会打开文件而不是下载。可能是什么问题呢?是否有任何属性需要添加才能使其在ie。

中起作用

我还需要一个适用于所有浏览器的文件下载示例。

8 个答案:

答案 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设置

更改“始终打开”设置:

  1. 在Windows资源管理器中,单击“工具”菜单,选择“文件夹选项”
  2. 在出现的窗口中,单击“文件类型”选项卡,然后滚动列表,直到找到要更改的文件扩展名(它们按字母顺序排列)。例如,如果Internet Explorer始终尝试打开.zip文件,请滚动列表,直到找到“zip”条目。
  3. 单击文件类型,然后单击“高级”按钮。
  4. 选中“下载后确认”框,然后点击确定&gt;关闭。
  5. 编辑:如果您问我,而不是在代码中进行任何更改,我会添加以下文字“ 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");