Springboot上传文件的同时传递参数用对象接收的问题及解决方案
作者:咖啡不甜不好喝
在Spring Boot中,若接口需同时接收文件和其他参数,应将文件用@RequestParam标注,其他参数封装对象并用@Validated校验,避免参数绑定冲突,本文给大家介绍Springboot上传文件的同时传递参数用对象接收,感兴趣的朋友跟随小编一起看看吧
在Springboot中,如果接口接收了文件,并且还接收了多个参数,为了对入参进行检验,将参数封装到对象,此时可能会导致问题,文件和参数不能同时被接收到,下面给出解决办法:
1、上传的文件参数用@RequestParam修饰
2、接收入参的对象,只用@Validated修饰,起参数校验的作用
代码如下:
@RestController
@RequestMapping("/punchIn")
@Slf4j
public class PunchInController {
@Autowired
private PunchInService punchInService;
/**
* 上传文件
*/
@PostMapping("/upload")
public BaseResult upload(@Validated ExcelUploadReq uploadReq, @RequestParam MultipartFile file) {
try {
punchInService.upload(uploadReq, file);
} catch (Exception ex) {
log.error(ex.getMessage(), ex);
return BaseResult.error("文件上传失败,请检查文件数据是否正确");
}
return BaseResult.success();
}
}Postman请求如下:


到此这篇关于Springboot上传文件的同时传递参数用对象接收的问题及解决方案的文章就介绍到这了,更多相关Springboot上传文件同时传递参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
