Struts2修改上传文件大小限制方法解析
作者:麦田 发布时间:2023-02-22 21:13:19
首先struts上传最大大小由两个地方决定.
· struts.multipart.maxSize决定整个post的form最大是多大,所以这个限制是最初的。默认大小是接近2M,在struts的default.properties中定义。
· fileuploadInterceptor中可以定义maximumSize最大文件大小。
最初定义在struts.xml中定义了没有生效,后来发现在工程中的struts.properties中已经设置过,所以后来被覆盖了,更改struts.properties中的设置生效。
这里有一个问题没有测试到,如果multipart form中有两个文件上传的话,fileuploadInterceptor设置的最大大小是总和还是针对每个文件,在源代码中看是对每个文件进行这样的检查。但是没有验证。
接下来,我们就看看Struts2修改上传文件大小方法,解决方法如下:
<struts>
<constant name="struts.multipart.maxSize" value="20971520" /> <!-- 设置允许最大值 20MB(1024*1024*20) -->
<package name="build" extends="struts-default">
<action name="fileUpload" class="com.home.UploadAction" method="upload">
<result name="success">/success.jsp</result>
<result name="input">/error.jsp</result>
<!-- <param name="allowedTypes"></param> 允许文件类型 -->
<interceptor-ref name="fileUpload">
<param name="maximumSize">5242880</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" /> <!-- 默认 * -->
</action>
</package>
</struts>
struts.multipart.maxSize和fileUpload * 的maximumSize属性分工不同
1、struts.multipart.maxSize控制整个项目所上传文件的最大size。超过这个值,后台报错
the request was rejected because its size (51224434) exceeds the configured maximum (20971520)
2、fileUpload * 的maximumSize属性必须小于struts.multipart.maxSize的值。
struts.multipart.maxSize默认2M,当maximumSize大于2M时,必须设置struts.multipart.maxSize的值大于maximumSize。
3、当上传的文件在maxSize和maximumSize之间时,系统提示
The file is to large to be uploaded: file "apache-tomcat-7.0.47.zip""upload_94d9d06c_a45f_b91e4c915c02_00000002.tmp" 8782342
4、当上传文件小于maximumSize时,上传成功。
总结:所上传文件大小应 < maximumSize < maxSize
来源:http://blog.csdn.net/itmyhome1990/article/details/41316775


猜你喜欢
- org.junit.jupiter.api不存在解决方案spring boot2.2之后和之前的测试类编写方法不一致修改为:// A cod
- 前言map的迭代删除,和我们常见的list,set不太一样,不能直接获取Iteraotr对象,提供的删除方法也是单个的,根据key进行删除,
- Java注解介绍基于注解(Annotation-based)的Java开发无疑是最新的开发趋势.[译者注: 这是05年的文章,在2014年,
- 一、泛型集合List<T>排序经sort方法之后,采用了升序的方式进行排列的。 List<int> list = n
- 什么是不可变对象?String对象是不可变的,但这仅意味着你无法通过调用它的公有方法来改变它的值。众所周知, 在Java中, String类
- 本文实例汇总了C#路径,文件,目录及IO常见操作。分享给大家供大家参考。具体如下:问题1:如何判定一个给定的路径是否有效/合法;通过Path
- 这篇文章主要介绍了springboot多租户设计过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 基础环境SpringBoot、Maven代码实现1.添加依赖<!--二维码生成 --><dependency&
- Intersect子句一、简介Intersect返回交集,交集是指同时出现在两个集合中的元素,和数据库中的Intersect方法实现功能一样
- 如果对一个值可以包含多个,那么可以使用枚举,加上Flags。新建一个Flags枚举类型:[Flags] publi
- Android Lint 原理及使用详解Android Lint 是 ADT 16中引入的新工具,用于扫描 Android 项目源中的潜在错
- Java HashSetHashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。HashSet 允许有 null 值。
- 一、RFC882文档简单说明RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮
- 所谓c#图片处理高级应,多数是基于.net framework类库完成using system;using system.collectio
- 注:图片来源于网络SpringBoot作为业内公认的优秀开源框架,它的 * 是如何实现呢?在这里首先对一些基础组件进行分析;1、事件Appl
- JDK * 实现原理 * 机制通过实现 InvocationHandler 接口创建自己的调用处理器通过为 Proxy 类指定 Clas
- 本文为大家分享了C# 7.0中的解构功能,供大家参考,具体内容如下解构元组C#7.0新增了诸多功能,其中有一项是新元组(ValueTuple
- 为没有手势的控件(ViewFlipper) 添加手势xml<?xml version="1.0" encoding
- 如果需要基于键对所需集合排序,就可以使用SortedList<TKey,TValue>类。这个类按照键给元素排序。这个集合中的值
- 最近做了一个MyEclipse项目,但是没开始多久就发现了这个问题:只要文件被修改过,不论多小的修改,保存的时候都会跳出一个框框,里面写着t