上传大小
接上一篇博客,写好文件上传功能以后,上传大于20M的文件 会发现报错,这是因为struts的默认上传的maxSize默认为20M。
default.properties文件中有这么一行代码:规定了上传的大小
struts.multipart.maxSize=2097152
然后我们可以对这个maxSize进行修改,在constant.xml(顾名思义,专门对常量进行配置的文件,方便管理),constant.xml文件内容如下所示:其中第4条便是对上传大小的设置,修改为了30M,即30*1024*1024
<?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>
<!-- 一、全局配置 -->
<!-- 0. 请求数据编码 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 1. 修改Struts默认的访问后缀 -->
<constant name="struts.action.extension" value="action,do,"></constant>
<!-- 2. 修改xml自动重新加载 -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 3. 开启动态方法调用 (默认不开启)-->
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<!-- 4. 修改上传文件的最大大小为30M -->
<constant name="struts.multipart.maxSize" value="30*1024*1024"/>
</struts>
如何使上面的constant.xml文件生效呢?在struts.xml的标签中引入这个constant.xml文件即可:
<struts>
<!-- 总配置文件:引入其他所有配置文件 -->
<include file="constant.xml"></include>
<include file="data/data.xml"></include>
<include file="type/type.xml"></include>
<include file="fileupload/upload.xml"></include>
</struts>
第一个引入的文件便是这个constant.xml文件
上传类型
在对应的文件上传action的upload.xml
中配置即可:
<struts>
<package name="upload" extends="struts-default">
<action name="fileUploadAction" class="fileupload.FileUpLoad">
<!-- 限制运行的文件的扩展名 -->
<param name="fileUpload.allowedExtensions">txt,jpg</param>
<!-- 限制运行的类型 【与上面同时使用取交集】
<param name="fileUpload.allowedTypes">text/plain</param>
-->
<result name="success">/e/success.jsp</result>
</action>
</package>
</struts>