firefox 将 xlsx 文件检测为 97-2003 工作簿 (.xls),并将文件另存为 example.xlsx.xls

firefox detecting xlsx file as 97-2003 workbook(.xls) which saves the file as example.xlsx.xls

我将 xlsx 文件保存在 firefox 中,浏览器将其识别为 97-2003 工作簿 (.xls)

当我打开 xls 文件时,它生成 pop-up window

我也在不同的机器上试过这个,它在 firefox 中工作正常,它检测到它是 Microsoft Office Excel 工作表(用于 .xlsx)

我还尝试打开浏览器首选项,我在第二台机器的应用程序选项卡中找到了内容类型列表中的 Microsoft excel 工作表

但在第一台机器中 content-type 列表仅包含 Microsoft excel 97-2003 工作表。是这个问题吗?如果是,请指导如何解决?

也想更新这个: First Machine Firefox 版本是 39.0.3 第二台机器 Firefox 版本是 40.0.2

编辑:

在代码中,我使用 PHPExcel 库生成 excel 文件,我将 application/vnd.ms-excel 作为 mime 类型传递header.

header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"example.xlsx\"");
header("Cache-Control: max-age=0");

如果这是问题所在,请告诉我?

application/vnd.ms-excelBIFF 格式 .xls 文件的 mime/content 类型。

OfficeOpenXML 格式 .xlsx 文件的 mime/content 类型是 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Firefox 仅解释您在 headers 中发送的内容类型,这与您发送的文件的扩展名或格式不匹配。

PHPExcel 参考

  • OfficeOpenXML 格式文件

    • Excel2007 作家
    • .xlsx 分机
    • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet content/mime 类型
  • BIFF格式文件

    • Excel5 作家
    • .xls 分机
    • application/vnd.ms-excel content/mime 类型