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

时间:2009-09-24 08:12:54

标签: php javascript excel firefox

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

它可以在Chrome中使用相同的代码(它保存它),但不是firefox ...

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

Have a look at this - Php exec and return binary

您是否正在发送正确的标题?

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

<强>更新

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

传播表单mime类型

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 ??

答案 1 :(得分:0)

您需要确保将此mime类型作为Content-Type标头发送: -

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

因此,您需要将.xslx扩展名映射到服务器上的此mime类型