2014-01-10 4 views
-1

Мы работаем над формой для загрузки некоторых файлов в Laravel 4, а выгружаемые архивы у нас довольно большие, примерно до 500 МБ.

Я хочу, чтобы наша система сгенерирует исключение, когда размер POST превышает размер, установленный в post_max_size, но вместо PHP бросает исключение, мы видим переменную, установленную PHP называется $php_errormsg и приложение продолжает просто без каких-либо $_POST данные.

Есть ли способ настроить PHP автоматически сгенерирует исключение для такого рода ошибки, или я должен был бы написать некоторую логику проверки, например, для существования $ php_errormsg и т.д.

Я думаю, что это довольно странный способ иметь дело с подобной ошибкой по-разному. Зачем отклоняться от стандартных исключений PHP?

Другое замечание, которое я сделал, состоит в том, что переменная $ php_errormsg существует только тогда, когда я проверяю ее внутри index.php в начальной точке ввода приложения, но к тому времени, когда Laravel 4 достигнет действия контроллера, просто нет понятия ничего что пошло не так, $ php_errormsg отсутствует, и там просто нет исключений брошены и потому $_POST получил гасится, мы получаем ошибки проверки недостающего необходимые полей, а не фактическая:

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- превышающий-ПГПС-пост-макс размер –

ответ

0

Добавив следующий код в моем контроллере:

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

Я могу показать ошибку надлежащим образом и иметь дело с ним, показывая соответствующее сообщение об ошибке пользователя.

Смежные вопросы