【问题标题】:PHPExcel generates 500 error on savePHPExcel 在保存时生成 500 错误
【发布时间】:2014-09-26 19:06:35
【问题描述】:

我刚刚将一组代码从我的开发服务器上传到我的实时服务器,当我尝试保存任何内容时,PHPExcel 刚刚开始生成 500 错误。代码如下 (注意:这一切在开发服务器上运行良好,PHPExcel 和 Laravel 在两者之间为其他应用程序转换时运行良好)

$PHPExcel = new PHPExcel;

$filename = 'Companies_Export_'.Session::getId().'.xls';
$file = public_path().'/_assets/exports/'.$filename;

//$fp = fopen($file, 'w');

$objWriter = PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel5');
$objWriter->save($file);

我已经删除了填充文件的代码,以防是文件大小问题。

我已经使用 fopen 来测试应用程序是否具有对目录的写入权限,并在正确的位置创建一个具有正确名称的新文件,所以这也很好。

我已尝试将文件名更改为“1.xls”,因此 Session::getId() 不是问题

如果我注释掉 $objWriter->save($file);行,一切正常,只是显然不保存,如果我把垃圾作为参数而不是合法的目录/文件名,它仍然只有 500 个,所以表明 PHPExcel 在编译文件或其他东西时必须失败?

我现在很茫然,无论我做什么它都不会显示错误,它只是抛出一个没有信息的 500 页面(详细的错误页面只是说 php fastcgi 进程意外退出或类似)

信息: PHP 版本 5.3.10 视窗服务器 2008 IIS 7.5

【问题讨论】:

  • 当您打开文件进行写入,然后PHPExcel 尝试写入文件时,它可能被锁定。请不要让我们猜测问题并从日志文件中查找确切的错误。
  • laravel.log 不包含有关特定错误的信息
  • laravel 日志?查看 PHP 错误日志。在 debian 上使用 fpm,它在 /var/log/php5-fpm.log,使用 apache,它在 /var/log/httpd/error.log/var/log/apache/error.log
  • 将其改为使用 syslog,因此记录的错误为:错误应用程序名称:php-cgi.exe,版本:5.3.10.0,时间戳:0x4f2ae019 错误模块名称:php5.dll,版本:5.3.10.0,时间戳:0x4f2ae082 异常代码:0xc0000005 故障偏移量:0x00091818 故障进程 id:0x17cc 故障应用程序启动时间:0x01cfafd2bd36811f 故障应用程序路径:C:\Program Files (x86)\PHP5310\php-cgi.exe 故障模块路径:C:\Program Files (x86)\PHP5310\php5.dll 报告 ID:08be4c4f-1bc7-11e4-a09c-001cc4e2ea5c
  • 我认为是windows+php的问题,命令的组合会导致这些错误。 "I updatet my php form 5.3.10 to 5.3.12 and problem was solved."(搜索“故障偏移量:0x00091818”)。

标签: php laravel laravel-4 phpexcel


【解决方案1】:

我们没有收到有用的错误消息的原因是因为 PHP (process exited unexpectedly) 本身在无法记录其崩溃原因之前就崩溃了。因此,由于PHP内部错误,PHP脚本很难解决。

我有点确定升级到较新的 PHP 版本会解决这些问题。

【讨论】:

    猜你喜欢
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多