Обмежте розмір файлу завантаження та перенаправляйте користувача на сторінку помилок, якщо ліміт перевищує


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.
колб’як

3

Не забудьте встановити post_max_sizeі upload_max_filesizeвідповідне значення в php.ini.


Ми не на php.
jonny

0

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


Я не згадував наш стек на сервері. PHP <> весь світ :)
jonny
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.