Struts 2 convention插件 – 上传超过2 MB的文件

如果我尝试上传超过2 MB大小的文件,则会出错。

我发现在apache网站上说“有两个单独的文件大小限制。首先是来自Struts 2 default.properties文件的struts.multipart.maxSize。出于安全原因,此设置存在以禁止恶意用户上传极大文件提交你的服务器磁盘空间。这个设置默认大约2兆字节,应该调整到你需要框架接收的最大文件大小(最大2格)

所以我发现这个问题可以通过在struts.xml文件中添加带有所需最大限制的标记来解决。

我们使用的是struts2-convention-plugin,所以我们没有struts.xml。 所以我不确定在哪里定义这个最大文件大小…

如果你们中的任何一个人遇到过这个问题,请告诉我。

感谢您的帮助。

  1. 您可以在Struts.xml中定义最大大小(如您所说, multipart.maxSize )以限制每个多部分请求的整体传输;

  2. 您还可以为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