在struts2.3.24中的struts.xml中添加以下内容:
<constant name="struts.multipart.parser" value="jakarta-stream" />
<constant name="struts.multipart.maxSize" value="3147483648" />
仅供引用,jsp 中的上传工作如下:
<s:form id="uploadData" action="abc_UploadAction?method=Upload" namespace="xyz" validateFields="false" method="post" enctype="multipart/form-data">
对于 Action 映射,我们使用 DMI 的概念。 Action 配置如下:
<action name="abc_*" class="ABCAction">
<result type="chain">invoke_${module}_{1}_${method}</result>
</action>
但是对于大于 2GB 的大文件,文件上传仍然不起作用。但上面的代码对于较小尺寸的上传工作正常,
最佳答案
为什么要声明一个 bean,如果 the documentation不是叫你这样做吗?
改变一下
<bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="jakartaStream"
class="org.apache.struts2.dispatcher.multipart.JakartaStreamMultiPartRequest"
scope="default" />
<constant name="struts.multipart.parser" value="jakartaStream" />
正确的配置应该是(连字符,而不是大写):
<constant name="struts.multipart.parser" value="jakarta-stream" />
关于java - 迁移到struts 2.3.24后,仍然不支持大于2GB的文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34715137/