Springboots上传文件的同时传递参数用对象接收
在Springboot中,如果接口接收了文件,并且还接收了多个参数,为了对入参进行检验,将参数封装到对象,此时可能会导致问题,文件和参数不能同时被接收到,下面给出解决办法:
1、上传的文件参数用@RequestParam修饰
2、接收入参的对象,只用@Validated修饰,起参数校验的作用
代码如下:
@RestController
@RequestMapping("/punchIn")
@Slf4j
public class PunchInController {@Autowiredprivate 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请求如下: