Я сталкиваюсь с некоторыми проблемами при обработке загрузки файлов с использованием реактивной среды Spring. Я думаю, что я следую за документами, но не могу уйти от этой 415
/ Unsupported Media Type
проблемы.
Мой контроллер выглядит как показано ниже (согласно примеру здесь: https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html#webflux-multipart-forms)
package com.test.controllers;
import reactor.core.publisher.Flux;
import org.springframework.http.MediaType;
import org.springframework.http.codec.multipart.FilePart;
import org.springframework.http.codec.multipart.Part;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@RequestMapping(value = "/upload", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public Flux<String> uploadHandler(@RequestBody Flux<Part> parts) {
return parts
.filter(part -> part instanceof FilePart)
.ofType(FilePart.class)
.log()
.flatMap(p -> Flux.just(p.filename()));
}
}
POSTING к этой конечной точке, всегда дает мне один и тот же вывод:
curl -X POST -F "data=@basic.ppt" http://localhost:8080/upload
---
"Unsupported Media Type","message":"Content type 'multipart/form-data;boundary=------------------------537139718d79303c;charset=UTF-8' not supported"
Я тоже пытался использовать @RequestPart("data")
, но получаю похожую ошибку Unsupported Media Type
, хотя и с типом содержимого файла.
Похоже, у Spring возникают проблемы с преобразованием их в Part
..? Я застрял - любая помощь приветствуется!