Unsupported Media Type from multi part file api
它总是从邮递员那里错误地给出415个不支持的媒体类型。头包含多部分/表单数据,其边界如下面的curl调用中所示。还尝试用RequestBody替换RequestPart,但没有成功。
当使用file part时,我们是否需要以任何不同的方式调用Spring5中的多部分文件上传API?
再控制器:
1 2 3 4 5 6 | @PostMapping(value ="/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public void uploads(@RequestPart("filePart") Flux<Part> fileparts) { .... } |
卷曲:
1 2 3 4 5 6 7 | curl -X POST \ http://localhost:8080/upload \ -H 'accept: application/json' \ -H 'cache-control: no-cache' \ -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \ -H 'postman-token: 2e850843-13d0-32d3-8734-227242da3303' \ -F [email protected] |
号
输出:
1 2 3 | "status": 415, "error":"Unsupported Media Type", "message":"Content type 'text/plain' not supported", |
编辑
但是,将uploads参数从
我们不能对requestpart使用相同的curl调用吗?
问题是由于pom.xml同时添加了SpringWebMVC和SpringWebFlux作为依赖项。似乎
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <dependency> <groupId>org.springframework.boot</groupId> spring-boot-starter-web</artifactId> <version>${spring.boot.version}</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> spring-webmvc</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> spring-boot-starter-webflux</artifactId> <version>${spring.boot.version}</version> </dependency> |