首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Struts 2约定插件-上传超过2 MB的文件

Struts 2约定插件-上传超过2 MB的文件
EN

Stack Overflow用户
提问于 2013-06-05 05:12:14
回答 2查看 1.7K关注 0票数 1

如果我试图上传一个超过2MB大小的文件,它就会出错。

我在apache网站上发现,“有两个独立的文件大小限制。第一个是struts.multipart.maxSize,它来自Struts2的default.properties文件。出于安全原因,这个设置的存在是为了防止恶意用户上传超大文件来占用您的服务器磁盘空间。这个设置默认为大约2MB,并且应该调整为您需要框架接收的最大文件大小(最大为2 be )。”

所以我发现这个问题可以通过在struts.xml文件中添加具有所需最大限制<constant name="struts.multipart.maxSize" value="1000000" />的标记来解决。

我们使用的是struts2约定插件,所以我们没有struts.xml。所以我不知道在哪里定义这个最大文件大小...

如果你们中有谁在这个问题上遇到过,请告诉我。

感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-05 16:04:13

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

  • 您还可以为FileUpload侦听器(默认为2MB)定义文件大小,既可以全局定义包,也可以为单个操作定义文件大小(方法是在<代码>E111 Struts.xml <代码>E212中的<action>标记中为该侦听器配置该参数,或者在使用<代码>E113约定插件<代码>E214 10485760 <代码>G216时在操作内对其进行批注

这意味着,例如,如果您配置的整体分块大小为20MB,每个文件的最大大小为4MB,那么您将能够在一次请求中多次上传5个4MB的文件;

更多信息请点击此处:https://stackoverflow.com/a/15968166/1654265

也就是说,你的问题不是问题;

使用约定插件并不意味着您没有struts.xml;它意味着

  • 您可以在操作中使用批注
  • 您可以避免使用一些与操作无关的struts配置,如multipart.maxSize、全局映射(结果、异常、自定义拦截器堆栈等),您完全可以使用struts.xml (创建它,如果直到那一刻它还不存在)。

Convention Plugin Documentation中没有提到它与struts.xml是互斥的(相反,如果您尝试在该页面上搜索"struts.xml",您会找到几个匹配项)

票数 1
EN

Stack Overflow用户

发布于 2013-06-05 05:54:34

您还必须更改apache目录中conf文件夹下的server.xml文件。找到您正在使用的connector标记,并添加所需的maxPostSize,以字节为单位:

代码语言:javascript
复制
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" 
           maxPostSize="2097152" />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16927570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档