During ServletFileUpload.parseRequest(factory) the servlet appears to read the
data from the users file.
--------------------------------------------------------------------------------------------------------
Key: FILEUPLOAD-200
URL: https://issues.apache.org/jira/browse/FILEUPLOAD-200
Project: Commons FileUpload
Issue Type: Bug
Affects Versions: 1.2.2
Environment: CentOS 5/Tomcat 7/JDK 1.7 (No Struts, etc...)
Reporter: Thomas Polliard
I have a very basic FileUpload Servlet I am working on. Using the following
code:
FileUploadListener listener = new FileUploadListener();
context.log("DEBUG: Created listener");
FileItemFactory factory = new DiskFileItemFactory();
context.log("DEBUG: Created Disk Factory");
ServletFileUpload uploader = new ServletFileUpload(factory);
context.log("DEBUG: Created ServletFileUpload(factory)");
request.getSession().setAttribute("ProgressListener",listener);
context.log("DEBUG: Listner added to Session");
List<FileItem> items = uploader.parseRequest(request);
// GETS HERE ONLY AFTER WAITING FOR THE WHOLE FILE
context.log("DEBUG: parsedRequest for FileItems");
for (FileItem element : items) {
if (!element.isFormField()) {
context.log("DEBUG:" + element.getName());
File fqfn = new File(f+"/"+element.getName());
<snip>
I try to upload a file (1G) the servlet appears to "upload" the file during the
parseRequest() call. This appears to be not valid, as the List<FileItem> is
pointless when trying to use the Listener to tell how much has been uploaded.
The user has already had to wait for the parseRequest() to complete, and by
then the listener says 0 bytes of Unknown Size.
The file will write in the List<FileItem> loop. The reason I think this is a
bug, is that I was expecting the parseRequest() to not "upload" the file but
rather to return a list of the formfields as FileItems, and then during the
FileItem loop and the subsequent write() call, the data would actually be
written and therefore the Listener would function. Perhaps, I do not
understand what the API is saying, or am missing some critical point. However,
all the examples I see online from the Fileupload Site on ASF have the exact
same behavior.
Thanks for your time and work.
Thomas
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira