`

struts2 common-fileupload上传文件大小限制

阅读更多
   1. org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (2359629) exceeds the configured maximum (2097152)   


引用
异常。这个最大值是在struts2的源文件“struts2-core-2.0.11.1.jar\org\apache\struts\ default.properties”中的struts.multipart.maxSize=2097152语句,如果想改大的话,就重新设定它,有两种方法:一种是重写:struts.properties文件,二是在struts.xml中加入常量来改变它如“
<constant name="struts.multipart.maxSize" value="10000000" />”


      当然了,也有struts2的拦截器可以限制文件的类型、大小等,但是当上传文件大于2M后,这个拦截器就不起作用了,只用小于2M(默认大小)的时候才起作用。那是因为:common-fileupload组件默认最大支持上传文件的大小为2M,当我们上传大于2M的文件时,就会出现上面所说的异常。是这个异常的发生导致了fileUpload拦截器没有机会执行,所以看到的是页面没有任何变化,也没有任何提示信息,只是在控制台打印出了上面的那些上传文件过大的异常

分享到:
评论
9 楼 lichen0921 2009-07-01  

java.io 
类 File

long      length() 
          返回由此抽象路径名表示的文件的长度。 

if (file.length()>52428800 ){
  ...
}
8 楼 hanxin830311 2009-04-14  
only_java 写道



Java代码

方法二、在配置action时不使用&lt;interceptor-ref&nbsp;name="fileUpload"&gt;,使用默认拦截器&lt;interceptor-ref&nbsp;name="defaultStack"&nbsp;/&gt;,直接在上传程序中获取上传文件大小,如果过大,return&nbsp;INPUT;&nbsp;&nbsp;方法二、在配置action时不使用&lt;interceptor-ref name="fileUpload"&gt;,使用默认拦截器&lt;interceptor-ref name="defaultStack" /&gt;,直接在上传程序中获取上传文件大小,如果过大,return INPUT;
这个好像也不行啊!按你的方法当上传大于2M的时候拦截器还是会起作用啊!!

如果不使用<interceptor-ref name="fileUpload">,是不会执行fileUpload拦截器的,你再检查一下<constant name="struts.multipart.maxSize" value="10000000" />”  value值配置的是多少,是不是你上传的文件超出了value值。
   我的项目都是这么写的,没有问题。不过自己写的拦截考虑的方面必须全面,不光是拦截文件大小这么简单了,还包含文件类型等等,总之在编码调试中很肯能会出现更多问题。
7 楼 only_java 2009-03-31  
方法二、在配置action时不使用<interceptor-ref name="fileUpload">,使用默认拦截器<interceptor-ref name="defaultStack" />,直接在上传程序中获取上传文件大小,如果过大,return INPUT;

这个好像也不行啊!按你的方法当上传大于2M的时候拦截器还是会起作用啊!!
6 楼 only_java 2009-03-31  

try{
//上传代码
}catch(FileUploadBase$SizeLimitExceededException e){
   addActionError("上传文件过大!");
   return INPUT;
}

这种做法不行吧?根本就执行不到上传代码这个地方啊!在拦截器那就断掉了啊
5 楼 hanxin830311 2009-03-05  
xiuying 写道

如果大于10000000 怎么半?异常怎么获取并跳转?

方法一、捕获FileUploadBase$SizeLimitExceededException异常
try{
//上传代码
}catch(FileUploadBase$SizeLimitExceededException e){
   addActionError("上传文件过大!");
   return INPUT;
}


方法二、在配置action时不使用<interceptor-ref name="fileUpload">,使用默认拦截器<interceptor-ref name="defaultStack" />,直接在上传程序中获取上传文件大小,如果过大,return INPUT;

方法三、编写自己的拦截器,拦截文件大小大于限制(自定)的文件,(还需要拦截文件类型)定义拦截器栈。把拦截器栈配置在action中。

4 楼 xiuying 2009-02-18  
如果大于10000000 怎么半?异常怎么获取并跳转?
3 楼 bulargy 2008-11-25  
很好很强大~~正好找这个~~
2 楼 thebye85 2008-10-30  
学习了。正遇到这个问题
1 楼 yuyu1911 2008-07-10  
谢谢

相关推荐

    利用Common-fileupload封装的文件上传组件...附上源码.

    首先,我们来看一下标题:“利用Common-fileupload封装的文件上传组件...附上源码”。这表明我们将讨论如何使用这个库来创建一个文件上传系统,并且提供有源码可供参考。通过`Common-fileupload`,我们可以实现用户...

    两篇网文:拦截器 Common-FileUpload

    通过这种方式,Struts2的拦截器和Common-FileUpload相结合,可以构建出强大且灵活的文件上传功能,同时保持代码的整洁和模块化。这不仅可以提高代码的可维护性,还能有效地避免常见的文件上传安全问题。对于Web...

    Common-FileUpload与struts2文件上传

    总结一下,Apache Commons FileUpload和Struts2框架提供了完善的文件上传解决方案。开发者可以通过Struts2的配置和Action类设计,结合Commons FileUpload的多部分解析能力,实现高效且安全的文件上传功能。同时,...

    Common-FileUpload带进度条文件上传

    "Common-FileUpload带进度条文件上传"是一个专门处理这种需求的解决方案,它允许用户在上传文件时看到进度条,提供更好的用户体验。下面我们将详细探讨这个主题以及相关知识点。 1. 文件上传的基本原理:在Web开发...

    commons-fileupload-1.3.3.jar和commons-io-2.6.jar

    在Java开发中,上传文件是一项常见的任务,而`commons-fileupload-1.3.3.jar`和`commons-io-2.6.jar`是Apache Commons项目中的两个重要库,专门用于处理HTTP请求中的文件上传功能。这两个库为开发者提供了便捷、高效...

    struts中使用Common-fileUpload.的几篇网络文章

    通过上述步骤,你可以在Struts 2应用中成功实现文件上传功能,利用Commons FileUpload库的强大功能来处理上传的文件。以上内容涵盖了从创建上传表单到处理上传请求、验证和存储文件的关键知识点。希望这些信息能对你...

    dom4j、common-fileupload、hibernate、jdom、log4j、proxool、spring、struts、webwork等工具、框架源码

    2. **Common-FileUpload**: 这是Apache Commons的一个模块,用于处理HTTP协议中的多部分文件上传请求。它简化了在Web应用程序中接收和处理大文件上传的过程,支持分块上传和错误处理。 3. **Hibernate**: Hibernate...

    easyUi+jquery+common-file-upload +struts2带进度条的文件上传DEMO

    基于eclipse + easyUi1.2.6+common-fileupload + struts2实现带进度条的文件上传DEMO,具体效果跟思路可见我的博客:http://blog.csdn.net/jun55xiu/article/details/22042279

    java使用common-fileupload实现文件上传

    `common-fileupload`处理文件上传,而`common-io`则提供了文件I/O操作的支持。 导入库后,我们可以通过以下步骤实现文件上传: 1. **创建DiskFileItemFactory实例**: `DiskFileItemFactory factory = new ...

    common fileupload上传组件包

    "Common Fileupload上传组件包"是一个专用于处理Web应用程序中文件上传功能的工具包。这个包包含两个核心组件:`commons-io-1.4.jar`和`commons-fileupload-1.2.1.jar`。这两个组件在实现文件上传过程中扮演着至关...

    Struts2文件上传

    Struts2框架虽然自身并不直接提供文件上传功能,但它支持集成Common-FileUpload和COS等第三方文件上传框架,通过对其进一步封装,简化了文件上传的代码实现,提高了开发效率。 - **Common-FileUpload**:由Apache...

Global site tag (gtag.js) - Google Analytics