java-Struts 2 Convention Plugin-上传超过2 MB的文件

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

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

因此,我发现可以通过添加具有所需最大限制<常量名=“ struts.multipart.maxSize” value =“ 1000000” />的标签来解决此问题.在struts.xml文件中.

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

请让我知道您中是否有人遇到此问题.

感谢您的帮助.

解决方法:

>您可以在Struts.xml中定义一个最大大小(如您所说的multipart.maxSize)以限制每个多部分请求的整体传输;
>您还可以定义FileUpload拦截器的文件大小(默认为2MB),既可以全局定义到程序包,也可以定义单个Action(通过在struts.xml的< action>标记中为该拦截器配置该参数,或者通过使用Convention插件时,在Action中对其进行注释:

<interceptor-ref name="fileUpload">
    <param name="maximumSize">10485760</param>
</interceptor-ref>

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

更多信息在这里:https://*.com/a/15968166/1654265

就是说,您的问题不是问题.

使用Convention插件并不意味着您没有struts.xml.这意味着

>您可以在操作中使用注释
>您可以避免使用struts.xml;
>当需要一些与动作无关的struts配置时,例如multipart.maxSize,全局映射(结果,异常,自定义拦截器堆栈等),您绝对可以使用struts.xml(如果直到那时才存在,则创建它)时刻).

Convention Plugin Documentation中,没有任何地方提到它与struts.xml是互斥的(相反,如果尝试在该页面上搜索“ struts.xml”,则会发现多次出现)

上一篇:微信支付curl出错及错误码解决方案


下一篇:java-更新对象属性