您的位置:首页 > 编程语言 > Java开发

解决Struts2文件上传的大小限制问题

2014-11-29 00:53 465 查看
1. 问题描述

背景:本人用eclipse开发一个基于Struts2.3.16.3_Spring4.1.1_Hibernate4.3.6架构的web项目, 需要用到xhEidtor编辑器, 在上传大文件图片时出现大文件图片上传不了, 也就是说struts限制了大文件的上传, 我们所需要做的就是修改struts.xml文件的参数.

2. 解决方法

我们可以通过修改struts.xml的参数来解决这个问题。struts.xml参数配置如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="false" />
<!-- 所允许上传文件的总大小 -->
<constant name="struts.multipart.maxSize" value="60000000"/>
<!-- 上传过程中临时文件存放目录 -->
<constant name="struts.multipart.saveDir" value="/temp" />
<package name="build" extends="struts-default">
<!-- 图片上传 -->
<action name="xheditorUpload" class="org.gditc.weicommunity.action.forum.XheditorUploadAction" method="imgUpload">
<!-- 限制图片的格式和图片的大小 -->
<interceptor-ref name="fileUpload">
<!-- <param name="allowedTypes">
image/bmp,image/png,image/gif,image/jpeg,image/jpg
</param> -->
<!-- 1048576(Bytes) = 1024*1024 = 1M实际文件大小. -->
<!-- <param name="maximumSize">1048576</param> -->
</interceptor-ref>

<!-- 默认的拦截器,必须要写 -->
<interceptor-ref name="defaultStack" />
</action>
</package>

<package name="default" namespace="/" extends="struts-default">

<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception"
result="error" />
</global-exception-mappings>

</package>

<!-- <include file="example.xml"/> -->

<!-- Add packages here -->
<!-- <include file="config/struts/struts-user.xml" /> -->

</struts>

struts.xml文件中的大小与实际文件大小的关系:1048576(Bytes) = 1024*1024 = 1M实际文件大小.

struts.multipart.saveDir
该属性指定上传文件的临时保存路径,该熟悉的默认值是javax.servlet.context.tempdir.
struts.multipart.maxSize
该属性指定struts2文件上传中整个请求内容允许的最大字节数, 默认上传的文件大小为2097152(2m).


正如上面所说, 我们只要根据自己上传文件的大小来修改struts.multipart.maxSize的值就可以了, 保证struts.multipart.maxSize的值大于所上传文件的大小即可



OK, Enjoy it!!!




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: