As I have set maximum file upload limit,I am getting
org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 2097152 bytes
error while uploading file.It is giving 500 error to my api,I should I handle this error and return response in JSON
format not an errorpage as provided in ErrorController
I want to catch that exception and give JSON response not ErrorPage
.
@RequestMapping(value="/save",method=RequestMethod.POST)
public ResponseDTO<String> save(@ModelAttribute @Valid FileUploadSingleDTO fileUploadSingleDTO,BindingResult bindingResult)throws MaxUploadSizeExceededException
{
ResponseDTO<String> result=documentDetailsService.saveDocumentSyn(fileUploadSingleDTO, bindingResult);
return result;
}
DTO that accepts document as follows
public class FileUploadSingleDTO {
@NotNull
private Integer documentName;
private Integer documentVersion;
@NotNull
private MultipartFile file;
}
The default is 10MB.
Handling MaxUploadSizeExceededException In order to handle this exception, we can have our controller implement the interface HandlerExceptionResolver, or we can create a @ControllerAdvice annotated class.
As par I know you can handle the multipart file exception by using this.
@ControllerAdvice
public class MyErrorController extends ResponseEntityExceptionHandler {
Logger logger = org.slf4j.LoggerFactory.getLogger(getClass());
@ExceptionHandler(MultipartException.class)
@ResponseBody
String handleFileException(HttpServletRequest request, Throwable ex) {
//return your json insted this string.
return "File upload error";
}
}
Add a special exception handler into your Controller:
@ExceptionHandler(FileSizeLimitExceededException.class)
public YourReturnType uploadedAFileTooLarge(FileSizeLimitExceededException e) {
/*...*/
}
(If this does not work, you have to enable exception handling in your configuration. Normally Spring does this by default.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With