PHP& Apache错误 - 显示在哪里?

时间:2010-07-06 23:58:36

标签: php apache file-upload uploadify

我正在Windows上的PC上本地运行PHP 脚本将文件上传到服务器 当文件大小超过upload_max_filesize中定义的php.ini或超出max_execution_time时,文件不会上传到服务器,我也看不到任何消息错误。<登记/> 我的问题是,我可以看到阻止文件上传的错误消息是什么? 是否可以向用户显示适当的消息?
我会很感激代码示例。谢谢!

4 个答案:

答案 0 :(得分:1)

如果您希望自己捕获错误,请查看set_error_handler函数。

答案 1 :(得分:1)

请参阅此页面:Error Messages Explained获取信息。简而言之,您可以从$_FILES['userfile']['error']获取文件上载错误消息,其中'userfile'是表单元素的名称。

或仅print_r($_FILES);查看当前文件上传的所有详细信息。

向用户显示人类可读错误消息的示例可能是:

switch($_FILES['userfile']['error'])
{
   case UPLOAD_ERR_INI_SIZE:
      echo 'The uploaded file exceeds the upload_max_filesize directive in php.ini.';
   break;
   case UPLOAD_ERR_CANT_WRITE:
      echo 'Failed to write file to disk.';
   break;
   // etc ...
}

max_execution_time并非具体的文件上传错误。由于troelskn纠正了我(see his reply for more info),这是一个致命的错误,通常无法在PHP中捕获,尽管我确实发现引用this other threadthis post提供了一种可能的致命方法错误。

另见the documentation for set_time_limit

答案 2 :(得分:0)

您可以更改php.ini服务器设置,或更改每个应用程序。

服务器端设置:(修改php.ini文件并修改error_reporting)

error_reporting = E_ALL & E_NOTICE & E_STRICT

对于运行时设置:在应用程序的最顶层添加以下内容:

error_reporting(E_ALL & E_NOTICE & E_STRICT);

答案 3 :(得分:0)

如果文件超过upload_max_filesize,则不会在PHP中引发错误。 $_FILES数组只包含此信息。

max_execution_time会引发致命错误,因此您无法捕获它并向用户显示一些不错的内容。它通常不会在文件上传期间发生,因为它是php脚本所采取的驯服,并且该脚本在文件完全传输之前不会开始执行。

您可以在Apache的常规错误日志中看到错误。