我正在使用Spring Boot 2开发RESTful api,并尝试上传在yml文件中设置为servlet.multipart.max-file-size=2MB
的限制文件。
根据我的要求,需要将上传的2MB以上的任何文件大小以及请求信息(getUser()
)和异常插入数据库。我可以使用@ExceptionHandler
生成异常消息,但没有得到请求信息(getUser()
)。请告知。
我在其余控制器上使用webRequest.setAttribute尝试使用WebRequest webRequest,但在@ExceptionHandler
中得到了Null。
我的控制器和控制器建议:
@PostMapping(path = "/sendEmail")
public ResponseEntity<EmailVO> sendEmail(@RequestPart(value = "file", required = false) MultipartFile[] uploadfile,
@RequestPart EmailVO emailVO,WebRequest webRequest, HttpServletRequest httprequest) {
webRequest.setAttribute("emailVO", emailVO, RequestAttributes.SCOPE_REQUEST);
EmailVO emailVO = myService.sendEmail(emailVO, uploadfile);
return new ResponseEntity<>(emailVO, HttpStatus.OK);
}
@ExceptionHandler(Exception.class)
public ExceptionResponse handleException(final Exception ex, final HttpServletRequest httprequest,WebRequest webrequest) {
if (ex instanceof MaxUploadSizeExceededException) {
EmailVO emailVO = (EmailVO) webrequest.getAttribute(EmailVO, RequestAttributes.SCOPE_REQUEST);
return new ExceptionResponse("Exceeds the limit for user "+emailVO.getUser,ex.getClass().getSimpleName(), httprequest.getRequestURI(),"Failure");
}
}
我无法获取来自请求控制器的emailVO.getUser