【问题标题】:PHPExcel output errorPHPExcel输出错误
【发布时间】:2013-04-14 17:05:49
【问题描述】:

我有以下代码,我在本地主机上运行并且运行良好:

$objWriter = new PHPExcel_Writer_Excel2007($excel);    
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'.$excel_file.'"');
$objWriter->save('php://output');

在另一台主机上上传相同的代码会返回 404“找不到文件”错误。

知道为什么吗?

【问题讨论】:

  • 404 not found 可能意味着该页面不在您期望的 URL 中,但与 PHPExcel 无关
  • 该页面正好位于我期望的 URL 上。
  • 请注意,您为文件类型发送了错误的标题:Excel2007 编写器用于创建 OfficeOpenXML (xlsx) 文件,该文件的 MIME 类型为 application/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/vnd.ms-excel 的 MIME 类型标识由 Excel5 编写器创建的 BIFF 格式 (xls) 文件
  • 检查您的网络服务器日志,但 404 返回状态意味着 page not found
  • 我没有重写规则。我也试过 xlsx 和那个 mime 类型,但仍然是同样的错误。它实际上不是 404,它说:“找不到文件。Firefox 在 [...] 找不到文件。检查文件名是否有大写或其他输入错误。检查文件是否被移动、重命名或已删除。”

标签: php phpexcel


【解决方案1】:

我遇到了同样的问题。它在本地工作,但不在实时服务器上。 只需在实时服务器上确认以下安装即可。

  • 启用 PHP 扩展 php_zip
  • 启用 PHP 扩展 php_xml
  • 启用 PHP 扩展 php_gd2

【讨论】:

    【解决方案2】:

    今天我解决了这个问题。

    我看到 Firefox 告诉我“找不到文件”,但标头中的 HTTP 代码是 500(服务器错误)。

    我写公式时出错了;一旦我更正了公式,错误就会消失。

    我在偏执级别报告错误,显示错误处于活动状态,并且我查看了 apache error*.log 文件,但我没有收到来自库/PHP/Apache 的关于该错误的通信。

    我发现错误只是在代码中一次注释掉一组行,直到我发现错误。

    我无法解释为什么这个错误会引发非日志。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多