169 похожих чатов

Кто в курсе как лучше обработать ошибку MaxUploadSizeExceededExceptionпри загрузке файлов... Когда

к примеру загружаю 2 файла, первый 1мб. второй 5мб.
В настройках спринга лимит на 3 мб. (spring.servlet.multipart.max-file-size=3MB)

Спринг автоматически перехватывает исключение MaxUploadSizeExceededException до того, как оно доходит до контролера (итог 500 ошибка).
При попытки поймать в @ControllerAdvice класса GlobalExceptionHandler - страница перезагружается и файлы не добавляются никакие.
А нужно чтобы 1 файл загрузился, 2 отклонил и уведомил.
Обработать именно на стороне бэка нужно.
Тоесть... если превышен лимит на загружаемый файл в настройках спринга и томката то тормозится полностью вся загрузка, а не только 1 файл.
Если увеличить лимит, то да можно обработать в сервисе как нужно.
Но вот потенциально всеравно какойто чудик будет файл 1гб грузить к примеру и в итоге та же ошибка.
Собственно вопрос, неужели это только на стороне клиента можно ограничить и на бэк ни как?

5 ответов

19 просмотров

Как по мне, если файл не загрузился, то это уже не ок с точки зрения http-запроса. По-хорошему, надо бы в 2 запроса это делать.

Ты делаешь загрузку одним запросом? Если так, то у меня для тебя плохие новости - это ограничение не на каждый файл в запросе, а на размер всего запроса в целом. Вообще надо отдельными запросами загружать Я так понимаю у тебя jsp или какой то иной серверный рендеринг?

O-Z Автор вопроса
Alexandr ∨∧‾ Emelyanov
Ты делаешь загрузку одним запросом? Если так, то у...

Мулитипартом... и лимит не на общую загрузку а именно на файл. Побродил по блогам, это старая проблемка... https://youtu.be/ZZMcg6LHC2k Решается костылем... даже стремно как то ( В этом случае тимлиф, но и по рест будет тоже самое. В запросе если хоть один файл превысит лимит, весь запрос отклонится, а не только тот что не проходит по валидации.

O Z
Мулитипартом... и лимит не на общую загрузку а име...

Помимо макс размера одного файла есть ещё макс размер тела запроса, spring.servlet.multipart.max-request-size кажется. Т.к. у тебя multipart, то несколько файлов могут передаваться в одном запросе, и здесь ты можешь нарваться на это ограничение.

O-Z Автор вопроса
akalexus
Помимо макс размера одного файла есть ещё макс раз...

Да это возможно, но в даном случае имено про размер 1 фала

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта