Hi, What browser are you using to submit the form? Also, you may already be aware, but as mentioned by the other reply there's an easy way to handle multipart form data in Struts, you can check out the struts-upload webapp in the distribution for an example.
As with your use of MultipartIterator, I'm not sure what the problem could be there. -----Original Message----- From: Marli Satyadi [mailto:[EMAIL PROTECTED]] Sent: Wednesday, November 28, 2001 8:23 PM To: [EMAIL PROTECTED] Subject: File Upload Problem. Hello, I was writing some upload code to test the use of MultipartIterator class. My html code is as follows: ----------------------------------------- <BODY BGCOLOR="FFFFFF"> <h1> MULTIPART TEST</h1> <FORM NAME="loadfile" ACTION="/MDC/servlet/servlet/com.cisco.nm.callhome.servlet.TestServlet" ENCTYPE='multipart/form-data' METHOD="POST"> CLASS: <INPUT NAME=class TYPE=text VALUE="File"> <br> COMMAND: <INPUT NAME=cmd TYPE=text VALUE="Add"> <br> DATA (XML): <textarea name="dataParam" rows=20 cols=80></textarea> <br> File Location: <INPUT TYPE=file NAME="uploadfile" SIZE="50"> <br> <INPUT TYPE=SUBMIT NAME=SUBMIT> </FORM> </BODY> </HTML> My servlet code is as follows: ------------------------------------------- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException { LogUtil.debug(_Class, " -----> DO POST"); MultipartIterator iter = new MultipartIterator(req, 64*1024, Integer.MAX_VALUE, "C:/Temp"); MultipartElement elem = null; while( (elem = iter.getNextElement()) != null ) { if( elem.isFile() ) { System.out.println("ELEM is a file"); System.out.println("FILENAME = " + elem.getFileName()); System.out.println("FILE PATH = " + elem.getFile().getAbsolutePath()); } else { System.out.print("NAME = '" + elem.getName() + "'"); System.out.println(". VALUE = '" + elem.getValue() + "'"); //System.out.println(elem.getName() + " = " + elem.getValue()); } } } When I use my browser to the html file, put some data in the "dataParam" text area and hit Submit, I got the following result in Tomcat stdout.log NAME = 'class'. VALUE = 'File' NAME = 'cmd'. VALUE = 'Add' </File>'</AuthTuple>sword>bejo</Password>1663eb7d56063ec67f23be</Checksum> ELEM is a file FILENAME = ch-p506-2_enable_callhome.cfg FILE PATH = C:\Temp\strts4674.tmp NAME = 'SUBMIT'. VALUE = 'Submit Query' My question is: ---------------------- * Is there an explanation on why the "dataParam" parameter is not printed out, or printed out but has the wrong value ? * I also have written a Java multipart writer to test it, but it looks like that the file is always larger by 2 bytes. Isn't the format for multipart request like this: --Boundary\r\n content-disposition: form-data; name="blah"; filename="file.txt"\r\n Content-type: application/octet-stream\r\n \r\n Body goes here...... --Boundary--\r\n Am I correct about the CRLF (\r\n) ? I have read RFC 1867 and RFC 2046 and it looks correct. Any ideas ? Thanks in advance. Marli. -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

