我正在使用 spring boot 2 开发一个 RESTful api,并尝试将 yml 文件中设置的限制上传为servlet.multipart.max-file-size=2MB
.
根据我的要求,上传的任何大小超过 2MB 的文件都需要使用请求信息 ( getUser()
) 和异常插入到数据库中。我可以使用生成异常消息,@ExceptionHandler
但我没有得到请求信息(getUser()
)。请指教。
我尝试使用 webRequest.setAttribute 在其余控制器上使用 WebRequest webRequest,但我在@ExceptionHandler
.
我的控制器和控制器建议:
@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