commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "F. Andy Seidl (JIRA)" <j...@apache.org>
Subject [jira] Commented: (FILEUPLOAD-168) read form field parameters even if maxSize has been exceeded
Date Tue, 14 Oct 2008 14:10:44 GMT

    [ https://issues.apache.org/jira/browse/FILEUPLOAD-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12639428#action_12639428
] 

F. Andy Seidl commented on FILEUPLOAD-168:
------------------------------------------

Regarding the second idea:

>>all form field parameters will still get read if requestSize is greater than sizeMax.
But, we should skip reading the body of the files and proceed to the next 'boundary' so as
not to keep the user waiting, if ever this is possible. (preferred) <<

Because the posted data is delivered as a sequential stream, there is no way to "skip" to
the next boundary other than reading the stream.

It would be possible to have the framework do this (ie. read the complete file but discard
it if it is too large), but it an application could do that right now.  E.g., suppose MY_MAX_SIZE
is the max size of the file you are willing to accept, you could set sizeMax to, say, 3*MY_MAX_SIZE
to allow the framework to consume file content up to three times the size of a file you are
actually willing to accept in order to try to read parametres after the file.  Then, in your
application, if you find the file size is creater than MY_MAX_SIZE, you discard it.

> read form field parameters even if maxSize has been exceeded
> ------------------------------------------------------------
>
>                 Key: FILEUPLOAD-168
>                 URL: https://issues.apache.org/jira/browse/FILEUPLOAD-168
>             Project: Commons FileUpload
>          Issue Type: Improvement
>         Environment: commons fileupload 1.2.2-SNAPSHOT
>            Reporter: Paul Rivera
>         Attachments: fileupload1.patch, fileupload2.patch
>
>
> Hi!
> This issue is similar to FILEUPLOAD-140.  I can't seem to reopen it so I created a new
one instead.  FILEUPLOAD-140 was marked as resolve by using the streaming API, if I'm not
mistaken.  No change was done.  But I disagree on the resolution of simply using the streaming
API (as detailed in http://commons.apache.org/fileupload/streaming.html).
> First of all, I tried to upload a big file exceeding maxSize with streaming API and got
the SizeLimitExceededException even before ANY parameter has been read.  
> ServletFileUpload.getItemIterator() calls FileUploadBase.getItemIterator() which creates
a new FileItemIteratorImpl().  In the constructor code of FileItemIteratorImpl, it already
checks for the requestSize and throws SizeLimitExceededException if sizeMax is exceeded.
> I'd like to open this discussion again and hope that in the end, we can have either:
>   - form field parameters BEFORE the file parameter will still get read if requestSize
is greater than sizeMax and then terminate once we reach the file
>   - all form field parameters will still get read if requestSize is greater than sizeMax.
 But, we should skip reading the body of the files and proceed to the next 'boundary' so as
not to keep the user waiting, if ever this is possible. (preferred)
> Then, we should also apply the same improvement into PortletFileUpload.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message