在开发中,经常地会有上传文件,文件超过限制大小的情况,对于这类的异常,我是这么处理的。
在原来的系统的spring的配置文件中,有一个参数文件是用来配置上传文件时的文件大小的
<context:property-placeholder location="classpath:fileupload.properties" />
参数文件中的内容是:
maxUploadSize=104857600
可以从配置文件中读取配置的上传文件时的文件限制大小
在系统中有一个继承AbstractHandlerExceptionResolver的系统异常处理类
在这个 SystemExceptionResolver 类中
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver;
public class SystemExceptionResolver extends AbstractHandlerExceptionResolver {
protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
if (ex instanceof MaxUploadSizeExceededException) {
long fileSize = ((MaxUploadSizeExceededException) ex).getMaxUploadSize();
String error = "文件超过限制大小,最大限制为".concat(fileSize /(1024 * 1024)).concat("M");
String message = "{\"functionArea\":\"fileUpload\",\"message\":\"".concat(error).concat("\"}");
response.setContentType("text/html;charset=UTF-8");
setResponse(response, -1, message);
}
}
}
/**
* 设置返回的Response信息
*
* @param response
* @param errorCode
* @param errorMsg
*/
private void setResponse(HttpServletResponse response, int errorCode,
String errorMsg)
{
if (-1 != errorCode)
response.setStatus(errorCode);
if (errorMsg != null)
printJSON(response, errorMsg);
}
/**
* 设置Response 的 responseText值
*
* @param response
* @param errorMsg
*/
private void printJSON(HttpServletResponse response, String errorMsg) {
response.setCharacterEncoding("UTF-8");
try {
PrintWriter out = response.getWriter();
out.println(errorMsg);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我在这个原来作者的异常处理类中,增加了一个条件的处理,即
if (ex instanceof MaxUploadSizeExceededException) {}
通过调用MaxUploadSizeExceededException的方法getMaxUploadSize()
long fileSize = ((MaxUploadSizeExceededException) ex).getMaxUploadSize();
得到上传文件的最大限制,然后拼接返回至前台页面的消息字符串,然后返回拼接好的字符串
分享到:
相关推荐
本压缩包"struts+spring文件上传大小限制.rar"显然是针对在Struts和Spring整合环境下,如何处理文件上传时的大小限制问题。以下将详细介绍这两个框架在文件上传时的处理机制以及如何设置文件大小限制。 1. Struts...
在实际应用中,你可能还需要处理可能出现的异常,如文件大小超过限制、文件类型不合法等。可以使用`@ExceptionHandler`注解来捕获并处理这些异常。 5. **文件存储**: 一旦文件被成功接收,你需要将其保存到...
在Spring MVC框架中,文件上传是一项常见的功能,但同时也需要考虑一些安全性与性能的问题,比如文件大小限制和文件类型检查。本篇文章将深入探讨如何在Spring MVC中设置这些限制,并解决超大文件上传可能导致的bug...
1. **文件大小限制**:根据业务需求,你可以调整`CommonsMultipartResolver`中的`maxUploadSize`以限制上传文件的大小。 2. **文件类型检查**:在Controller中检查文件类型,只允许特定类型的文件上传。 3. **错误...
在Spring框架中,文件上传是一项常见的功能,尤其在构建Web应用程序时。这个“spring 文件上传jar包”集合可能包含了处理文件上传所必需的各种依赖库,这些库能够帮助开发者轻松地在Spring MVC应用中实现文件上传的...
在Spring MVC框架中,文件上传是一项常见的功能,无论是普通的文件上传还是通过Ajax实现的异步文件上传,都为用户提供...在实际应用中,还需要注意文件大小限制、错误处理、安全性(如防止上传恶意文件)等方面的细节。
在Spring框架中,文件上传是常见的功能之一,它允许用户通过Web应用程序上传文件。这个功能在许多场景下都非常实用,比如用户提交表单时附带照片、文档等。本篇文章将详细探讨Spring如何处理文件上传,包括核心概念...
1. **文件大小限制**:限制上传文件的大小,防止DoS攻击。 2. **文件类型检查**:验证上传文件的类型,防止恶意文件如`.jsp`、`.php`等被执行。 3. **文件名安全**:避免使用用户提供的文件名,防止路径遍历攻击。 4...
- **验证与存储**:在处理文件上传时,通常需要验证文件大小、类型等,并将其安全地存储在服务器上。这可能涉及到文件重命名、存储路径管理以及异常处理。 3. **文件下载**: - **HttpServletResponse**:在...
以下是对`spring上传文件`这一主题的详细讲解。 首先,我们需要理解Spring MVC是Spring框架的一部分,它专门用于构建Web应用程序。在Spring MVC中,文件上传主要依赖于`CommonsMultipartResolver`,这是一个基于...
在Spring Boot框架中,文件上传是一项常见...在实际应用中,你可能还需要处理错误、验证文件大小和类型,以及将文件存储到数据库或云服务等更复杂的场景。但这个基础案例足以让你开始理解Spring Boot中的文件上传机制。
在Spring MVC 4.2框架中实现AjaxUpload(异步文件上传)是一个常见的需求,它允许用户在不刷新整个页面的情况下进行文件上传,提供更好的用户体验。以下是对这一主题的详细阐述: 1. **AjaxUpload简介**: Ajax...
在Spring MVC中实现文件上传并显示进度是一项常见的需求,特别是在用户需要等待较长时间的大型文件上传时。这个功能可以通过监听文件上传的进度并在前端实时更新来提升用户体验。下面将详细介绍如何利用Spring MVC...
SpringMVC会处理文件的临时存储、大小限制和错误处理。通常,文件会被临时存储在服务器上,然后通过业务逻辑进行进一步处理,比如保存到数据库或移动到其他存储位置。 5. **具体实现**: 实现文件上传时,首先需要...
在实际开发中,还需要考虑错误处理、文件大小限制、安全验证等细节问题。在"onegis"这个压缩包中,可能包含了一个实际的Spring Web项目示例,你可以通过查看代码和配置文件来深入了解这些概念的实践应用。
在Spring框架中,文件上传和下载是常见的功能需求,尤其在构建Web应用程序时。为了实现这一功能,开发者通常会依赖...记住,处理文件上传时一定要注意文件安全,比如验证文件类型、限制文件大小、避免路径遍历攻击等。
确保处理好文件重名、文件大小限制、安全性等问题。 此外,为了更好地处理文件上传,我们可以创建一个服务层,将文件上传的逻辑与控制器分离,使代码更易于维护和测试。同时,可以利用Spring的事务管理,确保文件...
在Spring MVC中,`MultipartFile`类是用于处理上传文件的核心类,它封装了文件的原始名称、临时存储路径、文件大小等信息。你可以通过`MultipartFile`的API读取文件内容,或者将其保存到服务器的指定位置。为了防止...
2. **业务层**:处理业务逻辑,例如验证文件大小、类型等,以及添加、查询和删除文件记录。 3. **Web 层**:Struts 控制请求流转,处理用户界面的展示和用户交互。 **配置文件** - `applicationContext.xml`:...
在这个项目中,"struts+spring+hibernate(mysql)用户登录及文件上传",开发者整合了这三个框架,并结合MySQL数据库实现了一个完整的用户管理系统,包括用户身份验证和文件上传功能。 首先,Struts是MVC(Model-View...