Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 文件下载在IE浏览器中无法正常工作?_Javascript_Jquery_Html_Internet Explorer - Fatal编程技术网

Javascript 文件下载在IE浏览器中无法正常工作?

Javascript 文件下载在IE浏览器中无法正常工作?,javascript,jquery,html,internet-explorer,Javascript,Jquery,Html,Internet Explorer,我正在使用HTML。我在我的文件系统中放置了一个XLSX文件,并通过锚定标记在HTML文件中提供了一个链接,如下所示 <a class="someClass" href="SampleFile.xlsx" target="_blank" type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">DownloadFile</a> 但问题是它在IE中不起作用。在IE中,xlsx文件作

我正在使用HTML。我在我的文件系统中放置了一个XLSX文件,并通过锚定标记在HTML文件中提供了一个链接,如下所示

<a class="someClass" href="SampleFile.xlsx" target="_blank" type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">DownloadFile</a>

但问题是它在IE中不起作用。在IE中,xlsx文件作为Zip文件而不是xlsx文件下载。但在firefox中,它可以按预期工作

在IE中:

在FF中:

我如何告诉IE将文件作为xlsx文件而不是zip文件下载


谢谢

您需要在服务器上设置正确的“内容类型”和/或“内容处置”标题

仅在HTML中,您无法可靠地为Internet Explorer执行此操作,但您可以在服务器端(例如,使用PHP、ASP或其支持的任何工具)执行此操作,或者通过配置文件所在的web服务器(例如,Apache或IIS)为具有给定扩展名的所有文件返回适当的头

请参阅此答案以了解一些见解:


注意:由于Internet Explorer公开了覆盖此行为的设置,并且Internet Explorer和Microsoft Office的不同版本在默认情况下对某些标题的响应不同,因此您可能会发现它的行为总是有点不可靠,即使您在服务器上设置标题也是如此。我在同一组织的公司PC上遇到过不同的浏览器行为,使用相同的操作系统、相同版本的Internet Explorer和Microsoft Office,但无法找到不同行为的根本原因(例如,下载与在浏览器内实际打开与在应用程序中打开)其他浏览器至少表现得一致。

您使用的是apache服务器吗?是否托管这些ms文件?这可能是因为web服务器为.xslx扩展名发送了错误的
内容类型
头。不知道如何在Tomcat中解决这个问题。注意:我说的是“和/或”,因为有多种方法可以做到这一点(取决于您是否希望始终下载文档、在现有浏览器窗口中打开文档或在新的Excel窗口中打开文档)。就我个人而言,我会首先尝试设置适当的内容类型,通过配置web服务器来识别文件扩展名为Excel。