Ограничить размер загружаемого файла и перенаправить пользователя на страницу ошибки, если ограничение превышает


9

Можно ли перенаправить пользователя на file too bigстраницу файла

когда размер POST-запроса превышает указанный лимит?

Я знаю о параметре max-request-size, но он дает только статическую страницу, которая не может быть перегружена.

Я думаю, чтобы создать правило перезаписи, которое принимает

размер содержимого из тела запроса в качестве входных данных и перенаправляет на страницу ошибки

ОБНОВИТЬ

теперь мы используем nginx в качестве внешнего интерфейса. Есть новые предложения?

Ответы:


19

Вы должны быть в состоянии сделать это, используя что-то вроде:

server {
  server_name example.com;

  client_max_body_size 10m; # or whatever size limit you want
  error_page 413 /custompage.html; # you can also use a named location here if you like
}

но это не будет работать с большинством современных браузеров - к сожалению, они не могут обрабатывать 413 должным образом. Итак, я боюсь, что нет решения этой проблемы (ну, если вы не можете исправить все текущие браузеры)
rvs

7
Вы можете изменить код состояния на что угодно с помощью error_page, если вы не хотите возвращать 413 клиенту. error_page 413 = 403 /custompage.html; будет использовать 403, например.
kolbyjack


0

Что касается поста @quanta, вы также можете указать меньшее значение в php и использовать php для отображения ошибки и правильного перенаправления. Это можно сделать и на других языках сценариев :-)


Я не упомянул наш стек на стороне сервера. PHP <> весь мир :)
Джонни
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.