在项目中使用springMVC 上传文件的时候,在上传文件的大小超过设定的值之后,异常解析器中的异常输出信息无法输出。
上传文件的时候有个文件大小的限制,在超出这个限制之后.会抛出MaxUploadSizeExceededException异常,该异常是spring检查上传文件的信息的时候抛出的,此时还没进入Controller内解析文件的方法中。
产生原因:tomcat7.0.65版本的bug。
a:超过文件大小的:
b:没超过限定大小的文件上传成功之后返回数据正确.
解决方式:
1:
更换tomcat版本。
apache-tomcat-7.0.67 (不可用)
apache-tomcat-7.0.65 (不可用)
apache-tomcat-7.0.38(可用)
apache-tomcat-7.0.39 (可用)apache-tomcat-7.0.70 (可用)
2:拦截器处理
首先把<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 单文件上传大小20M ,这里需要设置的大一点,避免在拦截器之前出现异常,很重要,这里是400M-->
<!--maxUploadSize 使用拦截器时可以不用设置-->
<property name="maxUploadSize" value="409715200"/>
<property name="defaultEncoding" value="UTF-8" />
</bean>
中的最大上传值弄大一点,避免抛出异常
<mvc:interceptors> <mvc:interceptor> <!--此处只拦截文件上传的请求--> <mvc:mapping path="/file/fileUpload.do"/> <bean class="com.sso.interceptor.FileInterceptor"> <property name="MAX_UPLOAD_SIZE" value="20971520"/> </bean> </mvc:interceptor> </mvc:interceptors>
创建拦截器
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//判断是否是多文件上传的请求
if (request != null && ServletFileUpload.isMultipartContent(request)) {
ServletRequestContext requestContext = new ServletRequestContext(request);
long requsetSize = requestContext.getContentLength();
if (requsetSize > MAX_UPLOAD_SIZE) {
ObjectMapper mapper = new ObjectMapper();
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
PrintWriter writer = response.getWriter();
//json输出提示信息
JSONObject json = new JSONObject();
json.put("message", "上传文件太大,不能超过" + maxSize / 1024 / 1024 + "M !");
json.put("status", "1");
mapper.writeValue(writer,json);
writer.flush();
return false;
}
}
return true;
}
- 大小: 44.2 KB
- 大小: 5.2 KB
分享到:
相关推荐
在实际项目中,需要注意文件上传的安全问题,比如防止恶意文件上传、限制文件类型和大小、使用安全的文件命名策略等。此外,下载时应确保文件路径不会暴露敏感信息。 7. **IDEA的使用**: IntelliJ IDEA提供了...
在这个“SpringMVC文件上传,多文件上传实例”中,我们将深入探讨如何在SpringMVC环境中实现文件上传功能,包括单个文件上传以及多个文件的批量上传。 1. **文件上传原理**: 文件上传是通过HTTP协议的POST请求来...
在Spring MVC框架中,文件上传是一项常见的功能,用于接收客户端发送的文件数据。Vue.js作为一个前端框架,可以很好地与Spring MVC结合,实现用户界面的交互和文件上传的处理。在这个项目中,我们将深入探讨如何使用...
springMvc 文件上传,springMvc 支持单文件和多文件上传,
springMVC 上传文件方式springMVC 上传文件方式springMVC 上传文件方式
在本教程中,我们将探讨如何结合`SpringMVC`和`Ajax`来实现异步文件上传,并讨论短视频背景以及`a`标签绑定文件域的相关知识。 1. **SpringMVC中的文件上传** - **MultipartFile接口**:`SpringMVC`提供了一个名为...
在SpringMVC框架中,文件的上传和下载是常见的功能需求,主要用于处理用户的数据交互,例如用户上传图片、文档等,或者系统提供文件下载服务。本文将深入探讨如何使用SpringMVC来实现这一功能。 首先,我们需要理解...
在这个项目"springmvc框架的文件上传 下载"中,你可能会遇到如404错误等常见问题,下面将详细介绍SpringMVC中文件上传和下载的实现及其可能遇到的问题。 **文件上传** 1. **配置**: 首先,你需要在`dispatcher-...
文件上传过程中可能会出现各种问题,例如文件过大、文件类型不受支持等。因此,需要捕获并处理`MultipartException`及其子类,向用户返回错误信息。 7. **配置** 在SpringMVC的配置中,需要启用MultipartResolver...
这个"SpringMVC文件上传Demo代码"是一个实例,演示了如何配置和使用SpringMVC来实现这一功能。 首先,我们需要在SpringMVC的配置文件(如`servlet-context.xml`)中启用多部分支持。这通常涉及到注册一个`...
在SpringMVC框架中,文件上传和下载是常见的功能需求,尤其在开发Web应用程序时。本文将详细讲解如何实现SpringMVC中的单文件上传、多文件上传、文件列表显示以及文件下载。 首先,我们需要理解SpringMVC处理文件...
在SpringMVC中,文件上传主要通过`CommonsMultipartResolver`解析器实现,它利用了`FileUpload`接口和`FileItem`接口来处理上传的文件。`FileUpload`负责将HTTP请求的多部分数据分割为单独的`FileItem`对象,而`...
在JavaEE企业级开发中,SpringMVC框架是广泛用于构建Web应用程序的工具,它提供了丰富的功能,包括处理文件上传和下载。本实验报告将详细阐述如何利用SpringMVC实现文件上传与下载的功能。 首先,文件上传的核心...
在开发Web应用时,文件上传和下载功能是常见的需求,特别是在处理用户数据或者提供资源服务时。本主题将深入探讨如何使用SpringMVC和SSH(Struts2 + Hibernate + Spring)框架来实现文件的上传与下载。 首先,我们...
SpringMVC是Spring框架的一个模块,专门用于处理Web应用程序中的HTTP请求和响应。在实际开发中,文件上传功能是常见的需求,例如...通过学习和实践这个Demo,开发者可以快速掌握SpringMVC环境下文件上传的实现方式。
SpringMVC 上传文件详解 SpringMVC 框架中上传文件是非常常见的操作,今天我们来详细讲解 SpringMVC 中的文件上传过程。 文件上传的必要条件 在 SpringMVC 中,文件上传需要满足以下几个条件: 1. 表单的 ...
总的来说,本项目结合了 SpringMVC 的文件上传功能和七牛云的存储服务,实现了一个完整的文件上传到云端的解决方案。这不仅可以减轻服务器的存储压力,还可以利用七牛云的高可用性和快速CDN服务,提高文件访问速度。...
在使用springMVC进行系统实现时,springMVC默认的解析器里面是没有加入对文件上传的解析的,这可以方便我们实现自己的文件上传。但如果你想使用springMVC对文件上传的解析器来处理文件上传的时候就需要在spring的...
在SpringMVC框架中,文件操作是常见的功能需求,包括文件的上传、下载、更新和删除。本项目提供了完整的解决方案,覆盖了这些功能点。以下将详细解释这些知识点。 一、文件上传 在SpringMVC中,文件上传主要依赖于`...