commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ben Kuek <ben.k...@abridge.com.au>
Subject Re: [FileUpload] Servlet stopping at servletFileUpload.parseRequest(request)
Date Wed, 11 Jul 2007 07:07:00 GMT

Solved,

I downloaded the source to find out that I missed the commons.io package.

On the FileUpload Project Dependencies page, I should have find out what 
it means
when it said that commons.io is optional.


Ben





Ben Kuek wrote:
>
> Thank you for your reply, I'll be more descriptive;
>
>
>
> 1)  I change the content to include blank lines and confirmed its 
> arrival at the
> servlet. Printing the request stream at the servlet I get:
>
> Content-type: multipart/form-data, boundary=AaB03x
>
> --AaB03x
> content-disposition: form-data; name="field1"
>
> Joe Blow
> --AaB03x
> content-disposition: form-data; name="pics"; filename="file1.txt"
> Content-Type: text/plain
>
> ... contents of file1.txt ...
> --AaB03x--
>
>
>
>
> 2) The part I commented are just code to print the request stream. I 
> tested
> with and without printing the stream to the console.
>
>
>
>
> 3) On the servlet side, I have:
>
> public void doPost(HttpServletRequest request, HttpServletResponse 
> response)
>            throws ServletException, IOException {
>        process(request, response);
> }
>
> private void process(HttpServletRequest request, HttpServletResponse 
> response)
>    throws ServletException, IOException {
>              boolean isMultipart = 
> ServletFileUpload.isMultipartContent(request);
>        if (isMultipart) {
>            FileItemFactory factory = new DiskFileItemFactory();
>            ServletFileUpload servletFileUpload = new 
> ServletFileUpload(factory);
>
>            try {
>
>                // Print the request stream
>                int intChar;
>                BufferedReader testBR = request.getReader();
>                while( (intChar = testBR.read())  != -1) {
>                    System.out.print((char)intChar);       
>                }
>                testBR.close();
>                              // It doesn't get pass this line
>                List items = servletFileUpload.parseRequest(request);
>
>                Iterator iter = items.iterator();
>                             // ..... code omitted
>
>            } catch (Exception e) { // this part is not run
>                System.out.println(e.getMessage());
>                e.printStackTrace();
>                log.error(e.getMessage());
>                
> response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
>            }
>            response.setStatus(HttpServletResponse.SC_OK);
>        } else { // not multipart
>            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
>        }
>    }
>
>
>
>
>
> Rgds,
> Ben
>
>
>
>
> Martin Cooper wrote:
>> A few comments:
>>
>> 1) The content you quote below does not match that in the RFC. The blank
>> lines are very important.
>> 2) Your code shows some stuff that's commented out that would prevent 
>> the
>> upload from working if it was not commented out.
>> 3) You don't show how you're creating and initialising the 
>> servletFileUpload
>> instance, so we can't tell if you got that right.
>>
>> -- 
>> Martin Cooper
>>
>>
>> On 7/4/07, Ben Kuek <ben.kuek@abridge.com.au> wrote:
>>>
>>>
>>> Hello,
>>>
>>> I am using commons-fileupload-1.2
>>>
>>> I am trying to upload a multipart/form-data from a client application
>>> (written in C#)
>>> to the servlet.
>>>
>>> The servlet stops at:
>>>
>>> servletFileUpload.parseRequest(request);
>>>
>>> returning an internal server error (500) to the client.
>>> There are no error messages printed.
>>> System.out.println(exception.getMessage()); doesn't seem to do anything
>>>
>>>
>>>
>>> -------------------------------------------------------------------------------------------

>>>
>>>
>>> For testing, I made sure that the client sent the following string
>>> (example from RFC 1867):
>>>
>>> Content-type: multipart/form-data, boundary=AaB03x
>>> --AaB03x
>>> content-disposition: form-data; name="field1"
>>> Joe Blow
>>> --AaB03x
>>> content-disposition: form-data; name="pics"; filename="file1.txt"
>>> Content-Type: text/plain
>>> ... contents of file1.txt ...
>>> --AaB03x--
>>>
>>>
>>>
>>> -------------------------------------------------------------------------------------------

>>>
>>>
>>> In the servlet, I made sure that the string is received by printing the
>>> request stream:
>>>
>>>                //int intChar;
>>>                //BufferedReader testBR = request.getReader();
>>>                //while( (intChar = testBR.read())  != -1) {
>>>                //    System.out.print((char)intChar);
>>>                //}
>>>                //testBR.close();
>>>
>>>                // I've confirmed that the string printed are as sent by
>>> the client
>>>
>>>                // Servlet will not move pass this line
>>>                List items = servletFileUpload.parseRequest(request);
>>>
>>> -------------------------------------------------------------------------------------------

>>>
>>>
>>>
>>> Am I doing something wrong?
>>>
>>> Warmest regards,
>>> Ben
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: commons-user-help@jakarta.apache.org
>>>
>>>
>>
>> ------------------------------------------------------------------------
>>
>> No virus found in this incoming message.
>> Checked by AVG Free Edition. Version: 7.5.476 / Virus Database: 
>> 269.10.0/886 - Release Date: 4/07/2007 1:40 PM
>>   
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>
>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Mime
View raw message