Я использую spring-webflux
и хочу загрузить файлы .... все прекрасно работает только с spring-web
, но когда дело доходит до webflux
, я понятия не имею, что не так.
Будьте осторожны в разнице ... я использую:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
Итак, скажем, у нас есть @RestController
, для Spring Web
он работает как шарм:
@PostMapping(value = "/uploadFile")
public Response uploadFile(@RequestParam("file") MultipartFile file) {
}
Теперь попытка сделать то же самое с Spring-webflux
выдает следующую ошибку:
{
"timestamp": "2019-04-11T13:31:01.705+0000",
"path": "/upload",
"status": 400,
"error": "Bad Request",
"message": "Required MultipartFile parameter 'file' is not present"
}
Я нашел из случайного вопроса stackoverflow, что мне нужно использовать @RequestPart
вместо @RequestParam
, но теперь я получаю приведенную ниже ошибку, и у меня нет понятия, почему это происходит?
Ошибка ниже:
{
"timestamp": "2019-04-11T12:27:59.687+0000",
"path": "/uploadFile",
"status": 415,
"error": "Unsupported Media Type",
"message": "Content type 'application/xml' not supported for bodyType=org.springframework.web.multipart.MultipartFile"
}
Даже при .txt
файлах выдает ту же ошибку:
{
"timestamp": "2019-04-11T12:27:59.687+0000",
"path": "/uploadFile",
"status": 415,
"error": "Unsupported Media Type",
"message": "Content type 'application/xml' not supported for bodyType=org.springframework.web.multipart.MultipartFile"
}
Ниже приведена Конфигурация почтальона n, которая довольно прямолинейна, я просто звоню с почтовым запросом и изменяю только тело, как показано на рисунке.
Кстати, я добавил нужные свойства и в application.properties :)
## MULTIPART (MultipartProperties)
# Enable multipart uploads
spring.servlet.multipart.enabled=true
# Threshold after which files are written to disk.
spring.servlet.multipart.file-size-threshold=2KB
# Max file size.
spring.servlet.multipart.max-file-size=200MB
# Max Request Size
spring.servlet.multipart.max-request-size=215MB