Я обнаружил, что Apache2 (вы также можете проверить Apache 1.5) имеет возможность ограничить это перед загрузкой, добавив это в ваш файл .htaccess:
LimitRequestBody 2097152
Это ограничивает его до 2 мегабайт (2 *1024* 1024) при загрузке файла (если я правильно выполнил свою байтовую математику).
Обратите внимание, что когда вы делаете это, журнал ошибок Apache будет генерировать эту запись, когда вы превысите этот лимит в сообщении формы или получите запрос:
Requested content-length of 4000107 is larger than the configured limit of 2097152
И это сообщение также будет отображаться в веб-браузере:
<h1>Request Entity Too Large</h1>
Итак, если вы делаете посты формы AJAX с чем-то вроде плагина Malsup jQuery Form, вы можете перехватить ответ H1, подобный этому, и показать результат ошибки.
Между прочим, возвращаемое число ошибки - 413. Таким образом, вы можете использовать директиву в вашем файле .htaccess, например ...
Redirect 413 413.html
... и предоставить более изящный результат ошибки назад.