`
youanyyou
  • 浏览: 199218 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

org.apache.commons.fileupload.FileUploadBase$SizeL

阅读更多

在上传94M的视频出现异常如下:

[@APPNAME@] ERROR [http-80-3] MultiPartRequest.parse(130) |

org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected

because its size (102147245) exceeds the configured maximum (50097152)

[@APPNAME@] ERROR [http-80-3] FileUploadInterceptor.intercept(227) | the request was rejected

because its size (102147245) exceeds the configured maximum (50097152)

 

解析:这个最大值是在struts2的源文件“struts2-core-2.0.11.1.jar\org\apache\struts\

default.properties”中的struts.multipart.maxSize=2097152语句,如果想改大的话,就重新设定它,有两种

方法:

一种是重写:struts.properties文件。

二是在struts.xml中加入常量来改变它如“ Java代码
<constant name="struts.multipart.maxSize" value="10000000" />

当然了,也有struts2的拦截器可以限制文件的类型、大小等,但是当上传文件大小2M后,这个拦截器就不起作用

了,只用小于2M(默认大小)的时候才起作用。那是因为:common-fileupload组件默认最大支持上传文件的大小

为2M,当我们上传大于2M的文件时,就会出现上面所说的异常。是这个异常的发生导致了fileUpload拦截器没有机

会执行,所以看到的是页面没有任何变化,也没有任何提示信息,只是在控制台打印出了上面的那些上传文件过

大的异常。

 

 

我解决问题的过程:

 

刚开始只是在struts.xml文件最上部加入

<constant name="struts.multipart.maxSize" value="1000000000" />

但还是报同样的错误。


接着查看struts.properties文件里的配置为:

### Load custom default resource bundles

struts.custom.i18n.resources=MessageResource

struts.multipart.maxSize=50097152

 

### character encoding

struts.i18n.encoding=GBK

 

修改为

### Load custom default resource bundles

struts.custom.i18n.resources=MessageResource

struts.multipart.maxSize=1000000000

 

### character encoding

struts.i18n.encoding=GBK

 

深圳人才网 深圳招聘网 深圳人才招聘网 深圳人才大市场 

企业、个人免费注册,获取想要的 深圳 软件工程师招聘信息 月薪最低3000-8000,更有高端猎头职位! 

www.szrcwz.com                                                                                                                                           

                  Google 提供的广告

分享到:
评论
1 楼 gabriel80 2009-09-04  
对于文件限制大小问题。。
strut包的确是默认大小2M。。
对于修改maxSize最大值也是可行的。。
但是这样我们就没法做到限制文件传输大小的控制。。
建议:
  MultiPartRequestWrapper multiWrapper = (MultiPartRequestWrapper) request;
        // Bind allowed Files
        Enumeration fileParameterNames = multiWrapper.getFileParameterNames();
        while (fileParameterNames != null && fileParameterNames.hasMoreElements()) {
            // get the value of this input tag
            String inputName = (String) fileParameterNames.nextElement();
            // Get a File object for the uploaded File
            File[] files = multiWrapper.getFiles(inputName);
..............................................
            //到这里就可以取到客户端提交到的文件了。。后面你想怎么校验就是读者自己的事情了。。。

}

对于客户端往服务器端上传文件。。
struts的原理是:把客户端的文件暂时拷贝到了服务器端的临时文件夹里的临时文件。。
我们操作到的file文件其实是服务器端本地的文件(临时文件。它会在我们完成操作后。自动清除这些文件的)

相关推荐

    利用org.apache.commons.fileupload上传多个文件

    import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.log4j.Logger; public class FileServlet extends ...

    jsp文件的上传处理

    import org.apache.commons.fileupload.servlet.ServletRequestContext; public class MultipartTestServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse ...

    Struts1文件上传、单文件、多文件上传(上传文件大小问题,如何设置无限制)

    2. **使用第三方库**: 如Apache Commons FileUpload组件,它可以更加灵活地控制文件上传的各个方面,包括文件大小限制。 #### 五、总结 通过上述步骤,我们可以顺利地在Struts1框架中实现单文件和多文件上传功能,...

    Java实现文件上传至服务器的方法

    import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class FileUploadServlet extends HttpServlet { private static ...

    struts2实现文件上传(单个+多个文件上传

    import org.apache.commons.io.IOUtils; import javax.servlet.ServletContext; import java.io.*; import java.util.Date; public class FileUploadAction extends ActionSupport { private static final long ...

    java实现文件上传下载

    import org.apache.commons.fileupload.servlet.ServletFileUpload; @WebServlet("/FileUpload") public class FileUpload extends HttpServlet { private static final long serialVersionUID = 1L; // 上传配置...

    struts2_上传图片展览.doc

    在Struts 2框架中,实现文件上传功能主要依赖于Apache Commons FileUpload库。这个库允许开发者处理HTTP请求中的多部分数据,也就是通常用于上传文件的数据格式。下面将详细讲解Struts 2文件上传的原理、步骤以及...

    Struts2 上传图片示例

    在Struts2中,实现文件上传功能通常依赖于Apache Commons FileUpload库。这个库允许处理HTTP请求中的多部分数据,即通常用于文件上传的数据格式。 以下是一个简单的Struts2上传图片的示例: 1. **配置依赖**: ...

    【JavaScript源代码】vue form表单post请求结合Servlet实现文件上传功能.docx

    在这里,我们使用Apache Commons FileUpload库来解析请求中的多部分数据。 ```java @WebServlet(urlPatterns = "/upfile/file") public class UploadServlet extends HttpServlet { private static final long ...

    在Struts 2中实现文件上传

    Struts 2 文件上传是基于 Apache Commons FileUpload 组件实现的,这个组件处理 HTTP 请求中的多部分数据,将上传的文件保存到服务器的临时目录。Struts 2 的 fileUpload 拦截器则负责将这些文件绑定到 Action 对象...

    JSP 文件上传

    在 Java 中,Apache Commons FileUpload 库提供了方便的接口来处理文件上传。确保将 `commons-fileupload-1.3.2.jar` 和 `commons-io-2.5.jar` 添加到项目类路径中。 `UploadServlet` 的主要任务是解析请求,提取...

    servlet实现文件上传、预览、下载、删除功能

    // 使用 Apache Commons FileUpload 库来处理文件上传 DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); FileItemIterator iter = ...

Global site tag (gtag.js) - Google Analytics