Hi.
I am trying very hard to post a binary file and some other parameters to a
servlet from a java application. The servlet will look at the parameters
and the associated file and write it to disk. I am having problems getting
it in the right format.
I can post any number of name=value pairs fine. However, when I add my
file byte array after my name=value pairs, it will generate an illegal
argument exception in my servlet when I call req.getParameter("name").
This means that I have the format wrong.
Another question: When I send the binary data, do I have to encode that
also?
Here's the Java application code that posts to the servlet. The servlet
stuff is pretty simple.
Thanks. It's close to 1AM and I can't get this fixed!!
Phillip
URL url;
URLConnection urlConn;
DataOutputStream printout;
DataInputStream input;
// URL of CGI-Bin script.
url = new URL ("http://localhost/servlet/FolderServlet");
// URL connection channel.
urlConn = url.openConnection();
// Let the run-time system (RTS) know that we want input.
urlConn.setDoInput (true);
// Let the RTS know that we want to do output.
urlConn.setDoOutput (true);
// No caching, we want the real thing.
urlConn.setUseCaches (false);
// Specify the content type.
urlConn.setRequestProperty ("Content-Type",
"application/x-www-form-urlencoded");
// Send POST output.
printout = new DataOutputStream (urlConn.getOutputStream ());
String content = "username=" + URLEncoder.encode ("user") +
"&password=" + URLEncoder.encode ("pass");
content += "&todo=sendfile";
printout.writeBytes (content);
File zipfile_to_send = new File("file.zip");
//in
final int iBufLen = 512; // default, change as needed
int iCount = 0;
BufferedInputStream filein = new BufferedInputStream(new
FileInputStream(zipfile_to_send), iBufLen );
byte[] bytes = new byte[ iBufLen ];
while( true )
{
try{
iCount = filein.read( bytes, 0, iBufLen );
if( iCount == -1 )
{
break; // EOS
}
//Should I be encoding the bytes that I am sending???
printout.write(bytes,0,iCount);
} catch( IOException ioe ){
ioe.printStackTrace();
break;
}
} // end while
filein.close();
printout.flush ();
printout.close ();
}
String inputLine;
BufferedReader in = new BufferedReader(new
InputStreamReader(urlConn.getInputStream()));
StringBuffer sb = new StringBuffer();
while ((inputLine = in.readLine()) != null)
{
System.out.println("inputLine=" + inputLine);
sb.append(inputLine);
}
in.close();
___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".
Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html