Spring webflux - загрузка файла не работает, выдает ошибку, когда я ударил его от почтальона - PullRequest
1 голос
/ 18 февраля 2020

Привет, у меня есть весеннее приложение webflux. Я хотел API для загрузки файла. Я следовал инструкции в Spring Webflux 415 с MultipartFile

и написал что-то вроде этого

@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public Mono<Void> save(@RequestPart("file") Mono<FilePart> file) {
        log.info("Storing a new file. Recieved by Controller");
        this.storageService.store(file);
        return Mono.empty();
    }

Но все же я не могу это проверить, это не получается с приведенной ниже ошибкой в почтальон и чванство не генерируют кнопку просмотра файла для этого API.

org.springframework.web.server.UnsupportedMediaTypeStatusException: Response status 415 with reason "Content type 'image/png' not supported"
at org.springframework.web.reactive.result.method.annotation.AbstractMessageReaderArgumentResolver.readBody(AbstractMessageReaderArgumentResolver.java:206) ~[spring-webflux-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at org.springframework.web.reactive.result.method.annotation.AbstractMessageReaderArgumentResolver.readBody(AbstractMessageReaderArgumentResolver.java:124) ~[spring-webflux-5.0.4.RELEASE.jar:5.0.4.RELEASE]

1 Ответ

0 голосов
/ 18 февраля 2020

не могли бы вы попытаться установить тип содержимого multipart / form-data в почтальоне? при отправке следующего запроса у меня работает верхняя конфигурация

    POST /rest/upload HTTP/1.1
    Host: localhost:8083
    Content: multipart/form-data
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

     ----WebKitFormBoundary7MA4YWxkTrZu0gW
     Content-Disposition: form-data; name="file"; filename="image.png"
     Content-Type: image/png

     (data)
     ----WebKitFormBoundary7MA4YWxkTrZu0gW

или curl:

curl --location --request POST 'http://localhost:8083/rest/upload' \
--header 'Content: multipart/form-data' \
--header 'Content-Type: multipart/form-data; boundary=--------------------------947246331766984894381774' \
--form 'file=@/Users/user/Documents/image.png'
...