首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

在Spring的环境中,怎么限制下传文件的文件大小

2012-09-06 
在Spring的环境中,如何限制上传文件的文件大小在开发中,经常地会有上传文件,文件超过限制大小的情况,对于

在Spring的环境中,如何限制上传文件的文件大小
在开发中,经常地会有上传文件,文件超过限制大小的情况,对于这类的异常,我是这么处理的。
在原来的系统的spring的配置文件中,有一个参数文件是用来配置上传文件时的文件大小的


参数文件中的内容是:
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();
得到上传文件的最大限制,然后拼接返回至前台页面的消息字符串,然后返回拼接好的字符串

热点排行