nikos dimitrakas created WW-5474:
------------------------------------

             Summary: struts.multipart.maxFiles does not work as 
described/expected
                 Key: WW-5474
                 URL: https://issues.apache.org/jira/browse/WW-5474
             Project: Struts 2
          Issue Type: Bug
    Affects Versions: 6.3.0
            Reporter: nikos dimitrakas


According to the documentation the property struts.multipart.maxFiles (which 
defaults to 256) is supposed to set a limit to how many files a multi-part form 
submission may include. But in reality, the specified value sets a limit to how 
many parameter values the form may submit, including strings, integers, 
booleans (from all input fields, checkboxes, hiddens, etc).

The problem is in the method JakartaMultiPartRequest.parsePrequest (part of 
struts) when in the last line it calls upload.parseRequest which is in 
FileUploadBase (part of commons-fileupload). That methods tries to find the 
FileItems from the provided RequestContext, but considers every parameter value 
to be a FileItem and then throws a new FileCountLimitExceededException when the 
number of parameter values (of any type) reaches the fileCountMax.

I am not sure if the problem is in struts or in fileupload. Maybe the provided 
RequestContext should somehow only include the file parameters so that only 
they get counted. Or perhaps the documentation should be changed to clarify 
that struts.multipart.maxFiles specifies the maximum number of parameter values 
a multipart form may include.

I also found the issue 
[FILEUPLOAD-351|https://issues.apache.org/jira/browse/FILEUPLOAD-351] that 
seems to point out the confusing behaviour. But until the issue has been 
resolved in fileupload, struts behaves contrary to its own documentation at 
[https://struts.apache.org/core-developers/file-upload]

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to