Re: [FileUpload] Servlet stopping at servletFileUpload.parseRequest(request)
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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] No virus foun
Re: [FileUpload] Servlet stopping at servletFileUpload.parseRequest(request)
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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] 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 -
Re: [FileUpload] Servlet stopping at servletFileUpload.parseRequest(request)
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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [FileUpload] Servlet stopping at servletFileUpload.parseRequest(request)
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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]