Yes, contentLength is an INT. That is what was killing me when using FileUpload 1.1.1. It would get a negative number as the content length and throw that UnknownSizeException. The nightly builds seem to have fixed that for me though as they actually pay attention to the maxSize parameter now (i.e. if it is -1, then ignore contentSize). As for the 32 bit windows/linux, i haven't tried that. I'm running on 64 bit linux/solaris.

Andrew
Arijit Mukherjee wrote:
By any chance, can it be limited by the contentLength of the http
request - because that's an INT?

Arijit
-----Original Message-----
From: Arijit Mukherjee [mailto:[EMAIL PROTECTED] Sent: 09 October 2006 14:50
To: Jakarta Commons Users List
Subject: [fileupload] Help with Commons FileUpload

Hi All

It's about the max allowable upload again.

Earlier, I was trying to upload a single file (from a servlet)
2GB, which didn't work. The methods I've been using are as
in the mail below.
It seems that the "handleFile" method isn't being invoked at all.

I tried to break the file into smaller chunks < 2GB, but even in that case, the upload doesn't work, and now I'm getting an error from the browser -

"The connection was reset The connection to the server was reset while the page was loading. * The site could be temporarily unavailable or too busy. Try again
in a few
         moments.
   *   If you are unable to load any pages, check your computer's
network
         connection.
* If your computer or network is protected by a firewall or proxy,
make sure
         that Firefox is permitted to access the Web."

There is a similar error on IE too.

My question is - if there is a problem with the file size, then the servlet should throw an exception while invoking the commons upload APIs. But, it's not going there at all - as it seems. I had a feeling that there might be limits in size in the HTTP request itself - but even that's not the case because I've been able to upload bigger files with the same code on a Mac Powerbook (using commons-upload 1.0). It's failing when I'm trying to do the same thing on a WinXP machine or a Linux machine. Earlier I posted a message suspecting that it probably has something to do with addressing system of the machines - like 64 bit or 32 bits - but I thought that would be the case for a single file size.

Has anyone been able to upload files > 2GB on a windows or linux (32
bit) system? Can you please give me some pointers?

Thanx in advance
Arijit



-----Original Message-----
From: Arijit Mukherjee [mailto:[EMAIL PROTECTED]
Sent: 02 October 2006 17:09
To: commons-user@jakarta.apache.org
Subject: Commons - Help with Commons FileUpload

Hi All

I have been using the Apache Commons FileUpload package for some time (mostly simple use cases) but stuck into something recently.
I'm trying
to upload files (greater than 2GB) onto a server using the commons upload package within a servlet (inside tomcat). Anything
less than 2GB
works alright (although slowly), but anything more than that simply doesn't do anything. In the "doPost" method of the servlet, I
have two
options based on an init parameter - either handling the option, or handling the file - so the commons API's are used in the handleFile() method -

public void doPost(HttpServletRequest request, HttpServletResponse
response)
           throws IOException, ServletException {
       try {
           if (!init) {
               mLog.debug("Handling file input...");
               handleFile(request, response);
           } else {
               mLog.debug("Handling option input...");
               handleRadioOption(request, response);
           }
       } catch (Exception ex) {
           ex.printStackTrace();
       }
}

private void handleFile(HttpServletRequest request,
HttpServletResponse
response)
                           throws IOException, ServletException {

        PrintWriter out = response.getWriter();
        ...
        boolean isMultipart =
ServletFileUpload.isMultipartContent(request);
        // Create a new file upload handler
           FileItemFactory factory = new DiskFileItemFactory();
           ServletFileUpload upload = new ServletFileUpload(factory);
           // Set overall request size constraint
           upload.setSizeMax(-1);
           upload.setFileSizeMax(-1);
           // Parse the request
           List items = upload.parseRequest(request);
        ...
}

It seems that when the files are selected and the "upload" button is clicked on the browser (a submit action), the
control doesn't
go into this method at all - only when one of the files are
larger than
2GB - otherwise, it executes fine.
I've tried several combinations for setting the max file
size, but none
seem to work. Can it be related to the servlet APIs somehow? Is the httpRequest size too large in this case?

Thanx in advance for any help.

Regards
Arijit


"And when the night is cloudy,
There is still a light that shines on me, Shine on until
tomorrow, let
it be. "

John Lennon/Paul McCartney


---------------------------------------------------------------------
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