2014-01-10 52 views
-1

我們正在製作一個表單來上傳Laravel 4中的一些文件,而且我們上傳的檔案相當大,最高可達500MB左右。

我希望我們的系統,當POST大小超過大小的post_max_size設置拋出一個異常,但不是PHP拋出一個異常,我們看到一個變量由PHP一套名爲$php_errormsg和應用程序只是繼續沒有任何$_POST數據。

是否有配置PHP自動拋出這種錯誤的異常的方式,或者我需要寫一些邏輯檢查,例如爲$ php_errormsg中等等

的存在,我認爲這是一個相當奇怪的處理這種錯誤的方式不同。爲什麼偏離標準PHP異常?

我的另一個觀察結果是$ php_errormsg變量只存在於index.php中,在最初的應用程序入口點檢查它,但到Laravel 4達到控制器動作時,根本沒有任何概念出了什麼問題,$ php_errormsg中丟失,而且也根本沒有異常拋出,因爲$_POST得到削除,我們正在驗證錯誤的缺少必填字段,而不是實際的:一個X字節

POST的Content-Length超過x的限制 字節

Debugging with XDebug in IntelliJ

+0

你試過寫嗎 ini_set('display_errors','On'); error_reporting(E_ALL); 在您的腳本? – Riad

+0

這是最明顯的,每一個其他的錯誤都會出現在HTML輸出中,或者出現在Laravel的錯誤顯示頁面。它看起來好像有人用@ –

+0

抑制了一些函數調用的錯誤似乎我不是唯一有這個問題的人:http://stackoverflow.com/questions/2133652/how-to-gracefully-handle-files-that-超過-PHPS-後的最大尺寸 –

回答

0

通過在我的控制器添加以下代碼:

global $php_errormsg; 
if (!is_null($php_errormsg)) { 
    throw new Exception($php_errormsg); 
} 

我能夠適當地顯示錯誤,並通過示出一個適當的錯誤信息給用戶處理。