我在Windows上的个人电脑上使用Apache本地运行PHP。
该脚本将文件上载到服务器。
当文件大小大于在php.ini
中定义的upload_max_filesize
或超过max_execution_time
时,文件不会上载到服务器,并且我看不到任何消息错误。
我的问题是在哪里可以看到什么是阻止文件上传的错误消息?
是否可以向用户显示适当的消息?
我将不胜感激代码示例。谢谢 !PHP和Apache错误 - 它显示在哪里?
2
A
回答
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 thread,其中引用this post提供了捕获致命错误的可能方法。
1
如果您希望自己捕捉错误,请查看set_error_handler
函数。
0
您可以更改您的php.ini服务器设置,或更改每个应用程序。
服务器端设置:(修改php.ini文件,并修改使用error_reporting到)
error_reporting = E_ALL & E_NOTICE & E_STRICT
运行系统设置:添加以下在应用程序的顶部:
error_reporting(E_ALL & E_NOTICE & E_STRICT);
0
如果一个文件超过upload_max_filesize
,您不会真的在PHP中引发错误。 $_FILES
数组将包含此信息。
max_execution_time
引发了一个致命错误,所以你不能捕捉它并向用户显示好的东西。它通常不会在文件上传过程中发生,因为它是由php脚本驯服的,并且该脚本在文件完全传输之前不会开始执行。
您可以在Apache的通用错误日志中看到错误。
相关问题
- 1. PHP错误,但它在哪里?
- 2. Android Stack Trace - 在哪里显示错误?
- 3. 错误在哪里 - 它们显示不正确的消息
- 4. Apache显示错误的版本为PHP
- 5. Fedora 17 apache php显示错误报告
- 6. PhpBB - PHP文件在哪里显示overall_footer.html?
- 7. Php错误 - 不确定它来自哪里或它的含义?
- 8. 错误在哪里?
- 9. 错误在哪里?
- 10. MySQL和PHP显示错误
- 11. PHP错误代码在哪里查询
- 12. 如何使错误消息在jquery.validate中显示在哪里?
- 13. Apache和PHP显示错误的端口号
- 14. typedef错误:在哪里把typedef和它应该如何写?
- 15. 在哪里把错误代码在MVC模型中显示错误给用户
- 16. Javascript:IE错误,Firebug没有犯错误。它在哪里?
- 17. Apache和PHP配置错误
- 18. 使用萤火虫,js错误显示在哪里?
- 19. eclipse注释处理器不工作。在哪里显示错误?
- 20. 错误在哪里?显示字符串C++ Vignere密码
- 21. 显示的错误在哪里? restrict_with_error验证
- 22. 显示哪里等于0(PHP)
- 23. 在哪里退出(1)`和哪里返回错误?
- 24. 在cakephp中显示Apache 404错误
- 25. 在PHP中显示错误
- 26. 奇怪的PHP错误,它来自哪里?笨
- 27. wordpress图像不显示它应该在哪里
- 28. PHP Force Apache错误
- 29. 显示PHP错误
- 30. PHP显示错误