#java #spring-boot #spring-webflux
#java #spring-boot #spring-webflux
Вопрос:
Я пытаюсь загрузить файл с помощью json в качестве параметра запроса. Но он говорит, что тело FileUpload отсутствует.
Вот мой контроллер.
@PostMapping("/upload")
public Flux<FileUpload> upload(@RequestPart("files") Flux<FilePart> filePartFlux,
@RequestParam("body") FileUpload[] fileUploads) {
return fileUploadService.saveFile(filePartFlux, fileUploads);
}
Вот мой сервис.
@Override
public Flux<FileUpload> saveFile(Flux<FilePart> filePartFlux, FileUpload[] fileUpload) {
List<FileUpload> list = Arrays.asList(fileUpload);
Flux<FileUpload> file = Flux.fromIterable(list);
upload(filePartFlux);
fileUploadRepository.saveAll(file);
return null;
}
И в Postman я попробовал это, но ошибка.
Ответ №1:
@RequestParam("body")
В WebFlux индикатор @RequestParam привязывает только параметры запроса.
ref docs :
https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/web-reactive.html#webflux-ann-requestparam
Если вы хотите получить FormData, вам следует использовать ServerWebExchange