在上传2M以上文件出现异常如下:
[@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
问题就解决了。
分享到:
相关推荐
1. **添加依赖**:在项目中引入`commons-fileupload-1.2.1.jar`和`commons-io-2.x.jar`(因为FileUpload依赖于Commons IO库)。在Eclipse中,你可以将这两个JAR文件添加到项目的类路径中,以便编译和运行。 2. **...
这个库在1.2.1版本中提供了一套高效且灵活的工具,帮助开发者处理Web应用程序中的多部分表单数据,即通常在上传文件时遇到的形式。在本文中,我们将深入探讨Apache Commons FileUpload 1.2.1版本的关键特性、工作...
2. **配置Action**:在Struts2的Action类中,需要定义一个字段来接收上传的文件,这个字段通常使用Apache的Commons FileUpload库中的`FileItem`接口或者`FileUploadException`异常类型。 3. **配置Struts2拦截器**...
在这个场景中,我们讨论的是如何在Struts2中实现图片和文件的批量上传,并且在上传过程中显示进度条。 批量上传是指用户可以一次性选择多个文件进行上传,而不仅仅是一个文件。这通常需要前端界面支持多选文件的...
总之,Struts2中的文件上传功能是通过结合Struts2的MVC架构和Apache Commons FileUpload库实现的。开发者需要配置框架,创建上传表单,编写处理上传的Action类,并处理可能出现的异常。"UploadFileDemo"示例可以帮助...
如果在上传过程中出现错误,可以返回输入页面(`upload.jsp`),让用户重新选择文件。 总之,通过Struts2和Commons FileUpload库,我们可以方便地实现多文件上传功能。关键在于正确配置Action类、Struts2配置文件...
同时,不要忘记处理可能出现的异常,如文件大小超出限制或文件类型不匹配。 为了提供用户反馈,可以返回不同的结果代码,比如“success”和“input”。前者表示文件上传成功,可以重定向到一个显示上传结果的页面;...
在Struts中,文件上传主要依赖于`commons-fileupload`和`commons-io`这两个库。在struts-config.xml配置文件中,你需要声明一个处理文件上传的ActionForm,比如`UploadForm`,并在其中定义一个类型为`java.io.File`...
3. **文件上传组件**:Struts2使用Apache的Commons FileUpload库来处理文件上传。这个库提供了一组API,可以方便地解析请求中的多部分数据,获取上传文件的信息。 4. **表单设计**:在JSP页面中,我们需要创建一个...
3. **FileUpload组件**:Struts2引入了Apache Commons FileUpload库,用于处理文件上传。这个库能够解析多部分请求,将文件保存到服务器,并处理可能出现的错误,如文件大小限制、类型限制等。 4. **临时文件存储**...
5. **异常处理**:上传过程中可能出现的异常包括文件大小限制、文件类型限制等,需要进行异常处理并给出相应提示。 6. **验证与保存**:在上传后,可能需要对文件进行验证(如检查文件类型、大小等),然后将文件...
在Struts2中,文件上传功能主要依赖于`Commons FileUpload`库。为了实现文件上传,首先需要在Struts2的配置文件(struts.xml)中添加相应的拦截器栈,如`params`和`fileUpload`拦截器,确保文件上传数据能够被正确...
4. **文件上传**:在Struts框架中,通常会使用`FileUpload`库(如Apache Commons FileUpload)来处理文件上传。用户选择文件后,Struts的Action会接收到文件流,然后通过Spring的Service层处理文件存储。这可能包括...
例如,当用户上传文件时,Spring可以确保文件保存到数据库或文件系统的操作在一个事务中完成,如果出现异常,所有改变都会被回滚。 Hibernate作为ORM(Object-Relational Mapping)工具,简化了数据库操作。在上传...
同时,Spring的事务管理功能确保了文件操作的原子性和一致性,比如在上传过程中如果出现异常,Spring可以自动回滚事务,防止数据不一致。 【文件上传实现】: 1. 用户在前端JSP页面选择文件并提交。 2. Struts拦截...
2. **Struts配置**:在struts.xml配置文件中,为上传操作创建一个Action配置,指定接收请求的类和方法。 3. **文件解析**:使用Apache Commons FileUpload库来解析HTTP请求中的多部分数据,获取上传的文件。 4. **...