我生成一个文件服务器端,我希望客户端自动打开它:它是一个XLSX文件。 Firefox只是打开文件,我在浏览器中看到XLSX文件的二进制内容,但我想通过另存为...框打开它。
它可以在Chrome中使用相同的代码(它保存它),但不是firefox ...
有什么想法吗?
答案 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类型