参见 http://stackoverflow.com/questions/2689989/how-to-handle-maxuploadsizeexceededexception
在spring中设置文件上传大小限制后,文件大小超限会直接404抛错,这是没有处理这个异常导致的.
MaxUploadSizeExceededException
spring配置如下:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- the maximum size of an uploaded file in bytes -->
<!-- <property name="maxUploadSize" value="10000000"/> -->
<property name="maxUploadSize" value="1000"/>
</bean>
只要增加一个异常处理器即可,即增加一个类,实现
HandlerExceptionResolver接口.代码如下
@Controller @RequestMapping(value = "/",method = RequestMethod.GET) public class ExceptionHandleController implements HandlerExceptionResolver { private Log logger = LogFactory.getLog(this.getClass()); @Override public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) { logger.error(e); O2sJsonDTO jsonDTO = new O2sJsonDTO(); jsonDTO = O2sJsonDTO.failDTO(jsonDTO); jsonDTO.setErrCode(ErrorCode.FAIL_MAX_FILE_SIZE_EXCEEDED.code()); jsonDTO.setErrMsg(ErrorCode.FAIL_MAX_FILE_SIZE_EXCEEDED.msg()); Map map = new HashMap(); map.put("errCode",ErrorCode.FAIL_MAX_FILE_SIZE_EXCEEDED.code()); map.put("errMsg",ErrorCode.FAIL_MAX_FILE_SIZE_EXCEEDED.msg()); return new ModelAndView(new MappingJacksonJsonView(),map); } }
找了一圈,这个方法最好.其它就没有尝试了.