Struts 2 convention插件 – 上传超过2 MB的文件
如果我尝试上传超过2 MB大小的文件,则会出错。
我发现在apache网站上说“有两个单独的文件大小限制。首先是来自Struts 2 default.properties文件的struts.multipart.maxSize。出于安全原因,此设置存在以禁止恶意用户上传极大文件提交你的服务器磁盘空间。这个设置默认大约2兆字节,应该调整到你需要框架接收的最大文件大小(最大2格)
所以我发现这个问题可以通过在struts.xml文件中添加带有所需最大限制的标记来解决。
我们使用的是struts2-convention-plugin,所以我们没有struts.xml。 所以我不确定在哪里定义这个最大文件大小…
如果你们中的任何一个人遇到过这个问题,请告诉我。
感谢您的帮助。
-
您可以在Struts.xml中定义最大大小(如您所说, multipart.maxSize )以限制每个多部分请求的整体传输;
-
您还可以为FileUpload Interceptor定义文件大小(默认为2MB),包括全局包和单个Action(通过在struts.xml的
标记中为该Interceptor配置该参数,或者通过Annotating it使用Convention插件时在Action内部:10485760
这意味着,例如,如果您将整个多部分大小配置为20 MB,每个文件的最大大小为4 MB,则可以在单个请求中执行5个4 MB文件的多次上载;
更多信息: https : //stackoverflow.com/a/15968166/1654265
那就是说,你的问题不是问题 ;
使用Convention插件并不意味着你没有struts.xml ; 这意味着
- 您可以在Actions中使用Annotations
- 你可以避免使用struts.xml ;
- 当一些struts配置与动作无关时,比如multipart.maxSize,需要全局映射(结果,exception,自定义拦截器堆栈等),你绝对可以使用struts.xml (创建它,如果直到那一刻它不存在)。
在公约插件文档中没有提到它与struts.xml互斥(相反,如果你尝试在该页面上搜索“ struts.xml ”,你会发现几次出现)
您还必须更改apache目录中conf
文件夹下的server.xml
文件。 找到您正在使用的connector
标签,并以字节为单位添加maxPostSize
: