Upload file size limit

Sergey Kobzar sergey.kobzar at itcraft.org
Tue Aug 14 21:16:12 UTC 2012


client_max_body_size 64m;

При попытке зааплоадить 100М файл получаю Aborted в Firebug и внутреннюю 
ошибку Firefox.

В логах:

2012/08/14 00:43:14 [error] 17428#0: *7743 client intended to send too 
large body: 104857955 bytes, client: 78.94.37.118, server: dev.test.com, 
request: "POST /qa2/test.php HTTP/1.1", host: "dev.test.com", referrer: 
"http://dev.test.com/qa2/test.php"

78.94.37.118 - dev [14/Aug/2012:00:43:14 +0100] "POST /qa2/test.php 
HTTP/1.1" 413 990 "http://dev.test.com/qa2/test.php" "Mozilla/5.0 (X11; 
Linux i686; rv:10.0.6) Gecko/20100101 Firefox/10.0.6" "-"

Т.е. 413 клиенту все-же ушла.

В документации:
client_max_body_size - Задаёт максимально допустимый размер тела запроса 
клиента, указываемый в поле “Content-Length” заголовка запроса. Если 
размер больше заданного, то клиенту возвращается ошибка 413 (Request 
Entity Too Large). Следует иметь в виду, что браузеры не умеют корректно 
показывать эту ошибку. Установка параметра размер в 0 отключает проверку 
размера тела запроса клиента.


Вопрос: как корректно обработать данную ситуацию? Т.е. выдать 
пользователю сообщение об ошибке (custom error page), если размер файла 
превышает лимит. Желательно сделать это не загружая файл целиком (то, 
что подменить значение Content-Length при необходимости можно - понятно).

Спасибо.



Подробная информация о списке рассылки nginx-ru