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 10:19:20 GMT

Not quite solved,

The code only works if I include the source files for FileUpload.

If I use the jar in the build path, it still fails. Have anybody come 
across this
before?

Ben



Ben Kuek wrote:
>
> 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
>
>
>
>
>


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