Firefox:打开XLSX文件不保存打开二进制文件

我生成一个文件服务器端,我希望客户端自动打开它:这是一个XLSX文件。 Firefox只是打开文件,我在浏览器中看到XLSX文件的二进制内容,但我希望它通过另存为…框打开。

它在Chrome中使用相同的代码(它保存),但不是Firefox的工作正常。

有任何想法吗 ?

看看这个–php exec并返回二进制

你发送正确的标题? 就像是

header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"yourfile.xlsx\""); 

UPDATE

 header('Content-Type: application/xls'); header('Content-Disposition: attachment; filename=example.xlsx'); header('Pragma: no-cache'); echo file_get_contents("/path/to/yourfile.xlsx"); 

更新2

传播片MIMEtypes

 application/vnd.ms-excel [official] application/msexcel application/x-msexcel application/x-ms-excel application/vnd.ms-excel application/x-excel application/x-dos_ms_excel application/xls 

更新3

关于你的JavaScript问题,你尝试使用

 location.href instead of window.open ?? 

您需要确保您将这个MIMEtypes作为Content-Type标头发送:

应用/ vnd.openxmlformats-officedocument.spreadsheetml.sheet

所以你需要将.xslx扩展名映射到服务器上的这个MIMEtypes