在Spring Boot中,@RequestBody注解用于接收HTTP请求的请求体内容,而 Multipart用于处理文件上传。默认情况下,这两者是不能同时使用的,因为HTTP请求的Content-Type头信息只能包含一个值。但你可以通过以下方法解决 @RequestBody不能和 Multipart同时使用的问题:
解决方法:
-
使用
@RequestPart代替@RequestBody: 在方法参数中使用@RequestPart注解来接收请求体内容,而不是使用@RequestBody。@RequestPart注解可以同时处理普通参数和Multipart文件,允许你在一个方法中处理多种类型的参数。@PostMapping("/upload") public ResponseEntity<String> uploadFile( @RequestPart("data") YourRequestBodyType requestBody, @RequestPart("file") MultipartFile file) { // 处理请求体和文件上传逻辑 } -
使用Map来接收参数: 如果你的请求体中包含多种类型的参数,可以使用
Map来接收参数,然后在方法内部进行解析。@PostMapping("/upload") public ResponseEntity<String> uploadFile(@RequestParam Map<String, String> params, @RequestParam("file") MultipartFile file) { // 解析参数和文件上传逻辑 }
请根据你的实际需求选择上述方法之一来解决Spring Boot中 @RequestBody不能和 Multipart同时使用的问题。
3410

被折叠的 条评论
为什么被折叠?



