Ok, so I'm playing with the streaming now and that seems to be working, but it seems like the file takes forever to write. The upload finished very quickly, but then it takes another 5 minutes to write the file to disk...Here is what I'm doing:

       // Create a new file upload handler
       ServletFileUpload upload = new ServletFileUpload();
// Parse the request
       FileItemIterator iter = upload.getItemIterator(request);
       while (iter.hasNext()) {
           FileItemStream item = iter.next();
           String name = item.getFieldName();
           InputStream stream = item.openStream();
           if (item.isFormField()) {
               System.out.println("Form field " + name + " with value "
                       + StreamUtil.asString(stream) + " detected.");
           } else {
               System.out.println("File field " + name + " with file name "
                       + item.getName() + " detected.");
               // Process the input stream
               File fNew = new File(dropbox, name);
               InputStream in = new BufferedInputStream(stream);
               OutputStream out = new BufferedOutputStream(new 
FileOutputStream(fNew));
               byte[] byteBuf = new byte[1024];
               int numBytes = 0;
               int totalBytes = 0;
               while (-1 != (numBytes = in.read(byteBuf))) {
                   out.write(byteBuf, 0, numBytes);
                   totalBytes += numBytes;
               }
           }
       }

Do you see anything I'm doing wrong? Is there a better buffer size to use? Should I not use a buffered stream to read the input stream? Am I just defeating the purpose of what you added?
Let me know if you see any where I can make an improvement.
Thanks!
Andrew
Paul J DeCoursey wrote:
Are you reading as a Stream or are you buffering the file on disk?

http://jakarta.apache.org/commons/fileupload/streaming.html


Also, it looks like UnknownSizeException has been deprecated because it doesn't exist in the latest release.

p




Andrew wrote:
We are running JBoss on RedHat AS3 on a linux box. I understand your comment about the protocol. I have other requirements that forced me to do it over https though.

Any ideas on the UnknownSizeException though and how I can disable it? I'm going to checkout the code today and look for myself, but if you already know, please enlighten me!

Thanks!
Andrew
Paul J DeCoursey wrote:
What is the OS and server you are running? I know that IIS has a limit, I think it's 2GB, for uploading files. I'm of the opinion that you shouldn't be using a web based fileupload for files that large, you should use some more robust file transfer protocol, like FTP, SFTP, SCP or USPS.

Paul

Andrew wrote:
I'm running into the same problem. I send this email to the list on Friday, but never heard back from anyone...maybe it will get looked at here:

I'm trying to upload files larger than 2GB. It seems I can send a file larger, but FileUpload throws an exception when it is larger than 2GB. It throws: FileUploadBase$UnknownSizeException: the request was rejected because its size is unknown. I'm assuming it can't get the content size because it overflowed an int. Now, I don't care if it knows how big the file is, I just want it to take when ever file is sent to it. Is there a way to disable this check? I'm already setting setMaxSize(-1) (the default) but that doesn't seem to matter.
Let me know if you all have any ideas.
Thanks!
Andrew

Arijit Mukherjee wrote:
I've been able to upload files almost upto 2GB. I'm stuck at files >
2GB, and I suspect it's because of the native O/S and not a commons
fileupload problem.

Cheers
Arijit
-----Original Message-----
From: Leena Kulkarni [mailto:[EMAIL PROTECTED] Sent: 03 October 2006 11:53
To: commons-user@jakarta.apache.org
Subject: [fielupload] how much big size file can be handled?

Hi Friends,

I have few questions about the commons file upload.

1) Is commons file upload suitable for uploading
files>10MB in size?
What we have observed that commons file upload load a file in memory. So for files > 10MB the deply in response is too much.
Is this right? Is there something we are missing?
Is there any other good variation of commons file upload if we have to use it for uploads upto 30MB?

2)When we try uploading a file>40MB, we are getting Items list as 0.
So there is nothing to iterate on and check if it is a file.

Code is like the following:
// Create a new file upload handler
ServletFileUpload upload = new
ServletFileUpload(factory);

// Parse the request
List /* FileItem */ items =
upload.parseRequest(request); // Process the uploaded items
Iterator iter = items.iterator();
while (iter.hasNext()) {
   FileItem item = (FileItem) iter.next();

   if (item.isFormField()) {
       processFormField(item);
   } else {
       processUploadedFile(item);
   }
}

We trapped this scenario and added code to show some customized error when Items are 0. But then it takes agaes to display the error message on screen when from the logs we can make out that the control did go till the point of displaying the error message to screen.

Do not know why this behaviour for large files [>40MB]. It can be good to know the some threshold at which such error occurs and if it is a known problem with commons fileupload.

Regards,

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com ---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to