0

我正在使用 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

4

0 回答 0