I want to add some comments here about the somehow misleading documentation on 
this.
>>
Files Number Limit

Since Struts 6.1.2 a new option was added, which uses Commons FileUpload 
feature to limit how many files can be uploaded at once, in one request. This 
option requires to use Commons FileUpload ver. 1.5 at least and by default is 
set to 256. Please always set this to a finite value to prevent DoS attacks.
To change this value define a constant in struts.xml as follows:
<struts>
    <constant name="struts.multipart.maxFiles" value="500"/>
</struts>
<<
 
Today, I used 
<constant name="struts.multipart.maxFiles" value="3"/>
because I have 3 file upload tags on my mask.
But the application crashed, even with only one file upload,  till I found a 
debug message in wildfly server.log
>>
2025-09-30 15:14:22,443 DEBUG 
[org.apache.struts2.dispatcher.multipart.AbstractMultiPartRequest] (default 
task-2) Applies max size: xxx to file upload request
2025-09-30 15:14:22,443 DEBUG 
[org.apache.struts2.dispatcher.multipart.AbstractMultiPartRequest] (default 
task-2) Applies max files number: 3 to file upload request
2025-09-30 15:14:22,443 DEBUG 
[org.apache.struts2.dispatcher.multipart.AbstractMultiPartRequest] (default 
task-2) Applies max size of single file: xxx to file upload request
2025-09-30 15:14:22,483 DEBUG 
[org.apache.struts2.dispatcher.multipart.AbstractMultiPartRequest] (default 
task-2) Error parsing the multi-part request!: 
org.apache.commons.fileupload2.core.FileUploadFileCountLimitException: 
attachment
    at 
deployment.resy.ear//org.apache.commons.fileupload2.core.AbstractFileUpload.lambda$parseRequest$1(AbstractFileUpload.java:465)
    at 
deployment.resy.ear//org.apache.commons.io.function.IOIterator.forEachRemaining(IOIterator.java:77)
    at 
deployment.resy.ear//org.apache.commons.fileupload2.core.AbstractFileUpload.parseRequest(AbstractFileUpload.java:462)
    at 
deployment.resy.ear//org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload.parseRequest(JakartaServletFileUpload.java:117)
    at 
deployment.resy.ear//org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.processUpload(JakartaMultiPartRequest.java:51)
<<
Debugging org.apache.commons told me that all my parameters counted, not only 
the fileupload parameter.

Best regards Ute


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to