Php CodeIgniter上载失败无错误日志无错误报告

Php CodeIgniter上载失败无错误日志无错误报告,php,codeigniter,Php,Codeigniter,我正在尝试使用CodeIgniter上传一个文件。这台服务器似乎发生了一些奇怪的事情,因为代码在其他服务器上运行良好。我正在尝试调试该问题,但未报告任何错误 具体而言,代码: if (!$this->upload->do_upload()) { var_dump($this->upload->display_errors()); exit(); } 我已打开错误报告(E_ALL)并显示错误,但未显示任何内容。只是一张空白页。我知道这些设置是有效的,因为如

我正在尝试使用CodeIgniter上传一个文件。这台服务器似乎发生了一些奇怪的事情,因为代码在其他服务器上运行良好。我正在尝试调试该问题,但未报告任何错误

具体而言,代码:

if (!$this->upload->do_upload()) {
    var_dump($this->upload->display_errors());
    exit();
}
我已打开错误报告(E_ALL)并显示错误,但未显示任何内容。只是一张空白页。我知道这些设置是有效的,因为如果我犯了语法错误,错误就会显示出来。当我上传文件时,它只是一个完全空白的页面。上传文件是100%确定的

我甚至打开了CodeIgniter日志,错误报告级别设置为4,但根本没有写入日志文件。我已将其设置为默认日志文件

最后,我检查了文件上传的PHPinfo()设置,看起来一切正常。他们被设置为开,没有疯狂的上传限制或类似的东西

我可以用fopen()创建文件,它可以很好地将文件写入服务器

关于我可以做些什么来尝试和调试有什么想法吗?我没有服务器访问权限(它是为客户机提供的),所以我尝试使用SFTP和错误输出。但我什么也得不到

我设法获取日志文件以输出以下内容:

INFO - 2016-11-28 01:24:07 --> Session: Class initialized using 'files' driver.
INFO - 2016-11-28 01:24:07 --> Model Class Initialized
INFO - 2016-11-28 01:24:07 --> Controller Class Initialized
INFO - 2016-11-28 01:24:07 --> Model Class Initialized
INFO - 2016-11-28 01:24:07 --> Model Class Initialized
INFO - 2016-11-28 01:24:07 --> Helper loaded: email_helper
INFO - 2016-11-28 01:24:07 --> Upload Class Initialized
因此,脚本似乎在上载类初始化部分停止。

给定:

它的CodeIgniter 3.1.2(最新版本)正在运行PHP5.4。错误报告和显示错误是由主机在我假定的ini设置中启用的。他们的主人是Dreamhost

我可以99%肯定地说,您没有启用,因此受到影响

Fileinfo扩展名描述为,这就是为什么在版本3.1.1中从
CI\u Upload
中删除了
函数('finfo\u file')
检查。但事实证明,一些发行版和/或主机提供商明确禁用了扩展,显然您受到了影响,导致以下错误:

PHP致命错误:在第1225行的/path/to/system/libraries/Upload.PHP中调用未定义的函数finfo_file()

您没有看到错误,因为您实际上没有为CodeIgniter应用程序启用
display\u errors
,并且可能没有在日志中查找它…
默认情况下,如果您在index.php文件中将
环境设置为“testing”或“production”,框架本身将始终启用
error\u reporting
,并禁用
display\u errors
,我猜您已经将其设置为“production”。因此,在php.ini中启用这两个设置都无关紧要,因为CodeIgniter将覆盖它们

该问题影响CodeIgniter版本3.1.1和3.1.2。要在3.1.3发布之前解决此问题,您可以启用Fileinfo扩展或应用此修补程序:

给定:

它的CodeIgniter 3.1.2(最新版本)正在运行PHP5.4。错误报告和显示错误是由主机在我假定的ini设置中启用的。他们的主人是Dreamhost

我可以99%肯定地说,您没有启用,因此受到影响

Fileinfo扩展名描述为,这就是为什么在版本3.1.1中从
CI\u Upload
中删除了
函数('finfo\u file')
检查。但事实证明,一些发行版和/或主机提供商明确禁用了扩展,显然您受到了影响,导致以下错误:

PHP致命错误:在第1225行的/path/to/system/libraries/Upload.PHP中调用未定义的函数finfo_file()

您没有看到错误,因为您实际上没有为CodeIgniter应用程序启用
display\u errors
,并且可能没有在日志中查找它…
默认情况下,如果您在index.php文件中将
环境设置为“testing”或“production”,框架本身将始终启用
error\u reporting
,并禁用
display\u errors
,我猜您已经将其设置为“production”。因此,在php.ini中启用这两个设置都无关紧要,因为CodeIgniter将覆盖它们


该问题影响CodeIgniter版本3.1.1和3.1.2。要在3.1.3发布之前解决此问题,您可以启用Fileinfo扩展或应用此修补程序:

什么
$this->upload->do_upload()
return?它不返回任何内容。我试过:var_dump($this->upload->do_upload());退出();你能在这里复制粘贴你的表格和它的属性吗?另外,请确保要上载文件,您将获得
$\u files
中的文件。首先检查一下,我使用的是一个简单的表单,默认的表单类型是multi-type。此表单在普通服务器上运行良好,可以正确上传。正是这台服务器引起了我的问题,但由于0条错误消息,我似乎无法调试它。这是哪个CodeIgniter和PHP版本?您如何启用
错误报告
显示错误
?什么
$this->upload->do\u upload()
返回?它不返回任何内容。我试过:var_dump($this->upload->do_upload());退出();你能在这里复制粘贴你的表格和它的属性吗?另外,请确保要上载文件,您将获得
$\u files
中的文件。首先检查一下,我使用的是一个简单的表单,默认的表单类型是multi-type。此表单在普通服务器上运行良好,可以正确上传。正是这台服务器引起了我的问题,但由于0条错误消息,我似乎无法调试它。这是哪个CodeIgniter和PHP版本?您是如何启用
错误报告
显示错误