Size: a a a

2020 June 03

DC

Denis Chikanov in learn.java
Михаил
Но тогда у меня будет фильтр, который сохраняет файл на файловую систему, что тоже странно.
А каким образом это вообще вытекает из вышесказанного?
источник

М

Михаил in learn.java
Denis Chikanov
А каким образом это вообще вытекает из вышесказанного?
Чтобы проверить файл мне нужно его скачать. Значит нужно его куда-то положить. Или вы предлаегете проверять стрим?
источник

М

Михаил in learn.java
Михаил
Чтобы проверить файл мне нужно его скачать. Значит нужно его куда-то положить. Или вы предлаегете проверять стрим?
Тоже так себе, потому что если он два гига...
источник

РХ

Ринат Харисов... in learn.java
Можно здорово облегчить себе задачу, указав в аннотации принимаемый тип @RequestMapping(consumes="video/*")
источник

М

Михаил in learn.java
Ринат Харисов
Можно здорово облегчить себе задачу, указав в аннотации принимаемый тип @RequestMapping(consumes="video/*")
👍, но это про заголовок запроса, а не про тип файла.
источник

РХ

Ринат Харисов... in learn.java
Ринат Харисов
Можно здорово облегчить себе задачу, указав в аннотации принимаемый тип @RequestMapping(consumes="video/*")
У подхода есть недостатки
- пользователь может обмануть при желании указав друго тип
- есть видеоформаты, которые начинаются не с "video/""
Можно использовать как первый барьер
источник

РХ

Ринат Харисов... in learn.java
Михаил
👍, но это про заголовок запроса, а не про тип файла.
Да, верно. Средний современный браузер автоматически проставтит Content-Type  определив тип файла, подойдет для подавляющего большинства запросов
источник

М

Михаил in learn.java
Давайте абстрагироваться от сети. Предположим что я пишу либу валидации файлов. Какой она должна кидать эсепшен? Или не кидать его вообще?
источник

D

Dima in learn.java
Михаил
Пользователь загружает аудио в форму для видео. Какое исключение использовать?
Runtime выглядит плохой идеей, так как нужно как-то настоять на том, что контроллер должен обработать это исключение и выдать соотвествующее сообщение об ошибке в морду.
рантайм подойдет
источник

D

Dima in learn.java
отнаследуйся от него своим эксепшеном, каким - придумай сам
источник

D

Dima in learn.java
дальше поймай его в @ControllerAdvice+@ExceptionHandler, обработай и верни ResponseEntity с нужным кодом
источник

D

Dima in learn.java
обычная практика
источник

М

Михаил in learn.java
Dima
рантайм подойдет
Вы бы не могли разжевать почему? Мои соображения - это зло, потому что нужно настоять чтобы пользователь этой либы его обработал. А с рантайом что он есть что его нет.
источник

D

Dima in learn.java
Михаил
Вы бы не могли разжевать почему? Мои соображения - это зло, потому что нужно настоять чтобы пользователь этой либы его обработал. А с рантайом что он есть что его нет.
чекед эксепшены в принципе зло
источник

D

Dima in learn.java
тащить через весь код это исключение или городить try catch
источник

l

lem0nify in learn.java
Dima
чекед эксепшены в принципе зло
+
источник

D

Dima in learn.java
все современные либы и языки перешли на анчекед эксепшены
источник

D

Dima in learn.java
в спринге все рантайм
источник

D

Dima in learn.java
в котлине нет чекед исключений
источник

М

Михаил in learn.java
Dima
все современные либы и языки перешли на анчекед эксепшены
Вас понял. Спасибо дорогое сообщества. Сейчас с этим смирюсь, а потом попробую понять.
источник