потребляет не обнаружив расширение файла - REST - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь загрузить файл из клиента в мое приложение.

Это метод моего контроллера:

@RequestMapping(value = "/Upload", method = RequestMethod.POST, consumes = { MediaType.IMAGE_JPEG_VALUE,
            MediaType.IMAGE_PNG_VALUE, MediaType.IMAGE_GIF_VALUE })
    public ResponseEntity saveFile(HttpServletRequest httpServletRequest, @RequestBody MultipartFile file) {

... 

}

Но когда я пытаюсь загрузить изображение с правомрасширение Я получаю 415 HTTP-код: тип поддержки не поддерживается.

Несмотря на то, что после удаления атрибутов «расходует» и повторной попытки, файл успешно загружен.

, и я проверилcontent-type было равно image/png.

РЕДАКТИРОВАТЬ :: Экран почтальона:

enter image description here

1 Ответ

0 голосов
/ 24 октября 2018

Я думаю, что MediaType.MULTIPART_FORM_DATA должен использоваться.Тип контента - это просто заголовок запроса, а при загрузке не устанавливается расширение файла в заголовке.

Если вам нужно проверить контент, вы можете использовать apache Tika

    <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-core</artifactId>
        <version>1.18</version>
    </dependency>

Tika tika = new Tika();
String contentType = tika.detect(someInputStreamHere);

, тогда вы можете проверить,тип содержимого, извлеченный из реальных байтов, разрешен или нет.

...