标签:
最近在讲课的时候,遇到了关于上传文件过大的时候浏览器无法响应的问题,配置了捕获异常,有的学生浏览器好使,有的学生浏览器不好用!莫名其妙!
MaxUploadSizeExceededException进入了无限的死循环,╮(╯▽╰)╭ 悲催! 为什么呢?
在springmvc的核心配置文件配置如下信息
<!-- 5.配置上传 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="defaultEncoding" value="UTF-8"/><!-- 可以使用计算的 value="#{20*1024*1024}"/> --><property name="maxUploadSize" value="20971520"/><property name="maxInMemorySize" value="2048"/><property name="resolveLazily" value="true"/><!-- 配置的是虚拟路径 --><property name="uploadTempDir" value="/uploadFile/temp"/></bean>
@ExceptionHandler(Exception.class)public String handleException(Exception ex,HttpServletRequest request) {if(ex instanceof org.springframework.web.multipart.MaxUploadSizeExceededException){request.setAttribute("error", "上传文件过大");}return "要转向的页面,可以自由定义或者是原页面.";}
在SpringMVC的核心配置文件配置统一的异常信息处理
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"><property name="exceptionMappings"><props><prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">maxUploadExceeded</prop></props></property>
关于spring mvc MaxUploadSizeExceededException 死循环解决方案
这个问题困扰了我很久了,其实我之前有一种解决方案是在前端进行判断操作,哈哈,之后的笔记会给大家奉献上!
在springmvc的核心配置文件配置如下信息
<!-- 5.配置上传 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="defaultEncoding" value="UTF-8"/><!-- 可以使用计算的 value="#{20*1024*1024}"/> --><property name="maxUploadSize" value="20971520"/><property name="maxInMemorySize" value="2048"/><!-- 配置的是虚拟路径 --><property name="uploadTempDir" value="/uploadFile/temp"/></bean>
没有定义延时解析
public class FileUploadInterceptor extends HandlerInterceptorAdapter {@Overridepublic boolean preHandle(HttpServletRequest request , HttpServletResponse response , Object handler )throws Exception {if(request!=null && ServletFileUpload.isMultipartContent(request)) {ServletRequestContext ctx = new ServletRequestContext(request);long requestSize = ctx.contentLength();if (requestSize > maxSize) {throw new MaxUploadSizeExceededException(maxSize);}}return true;}private long maxSize;public void setMaxSize(long maxSize) {this.maxSize = maxSize;}}
<mvc:interceptor><mvc:mapping path="/**"/><bean class="com.shxt.interceptor.FileUploadInterceptor"><property name="maxSize" value="4194304"/></bean></mvc:interceptor>
标签:
原文地址:http://www.cnblogs.com/pangxiansheng/p/2e53b9fe7b46f1dff69b8efccb3db5ee.html