0

我正在使用 PHP 构建一个 Web 应用程序,该应用程序使用Excel Writer (XML) for PHP创建一个用户可以下载的 Excel 文件。我查看了该库的源代码,它所做的只是将生成的 XML 回显到标准输出。虽然生成的文件是一个 XML 文件,但我特意给它起了一个带有“.xls”扩展名的名称,以便在下载后最终用户可以双击它,它会在他们的系统上启动 Excel 并打开文件成功地。

这在使用 Firefox、Chrome 和 IE 下载文件时可以正常工作,但不能使用 Safari。例如,如果我将文件名设置为“File.xls”,这就是下载文件的名称。但在 Safari 中,文件的名称最终是“File.xls.xml”。

服务器在 Mac OS X 上运行 Apache。我认为这可能很重要,因为我猜测问题与服务器上的 MIME 类型有关,但我完全不确定。也许我可以对页面上显示的链接做一些事情,或者我需要编辑 Apache 的配置文件?任何帮助表示赞赏。

4

1 回答 1

0

您可能是对的,它可能只是需要设置的 MIME 类型。

试着放

header("Content-Type: application/vnd.ms-excel");

在输出代码之前,这应该会强制浏览器将数据视为 Excel 文件。

如果代码已经设置了 Content-Type 并且存在冲突,则在脚本中搜索“Content-Type”并尝试更改它。

此外,如果它是 XLSX 文件,则存在不同的 MIME 类型 -application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

于 2011-09-15T02:18:27.687 回答