我在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顯示錯誤