让Safari写出正确的FileName

时间:2011-09-14 23:42:09

标签: php apache excel osx-server

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

使用Firefox,Chrome和IE下载文件时,此功能正常,但Safari不能。例如,如果我将文件名设置为“File.xls”,则这是要下载的文件的名称。但是对于Safari,文件的名称最终是'File.xls.xml'。

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

1 个答案:

答案 0 :(得分:0)

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

尝试放

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

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

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

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