- From: Star Lee <xli@thizgroup.com>
- Date: Mon, 10 Nov 2003 16:00:18 +0800
- To: <www-lib@w3.org>
- Message-ID: <011c01c3a760$ae8a15d0$5c01a8c0@lx>
Hi all:
I want to post a file to serverlet by java application;I used the java class urlconnection. But I got error from server like this:'premature ending '.Can you tell me why?
/**
* Title: testPostFile.java
* Author: Star Lee
* Date: 10/30/2003
* Desc: Will post a file based to a server-based file upload application
* Change the filename and the URL for your usage.
*
*/
import java.util.*;
import java.io.*;
import java.net.*;
class testPostFile
{
// true globals
// Anything that's unique will work
static final String CONTENT_BOUNDARY =
"-----------------------------7d22a63810058e";//Set the boundary
public testPostFile() {
}//Structure function
public static void main (String [] args) {
// whatever file you care to upload
String uploadFileName = "c:/document.doc";//Fill the name of file that you want to upload
String ext = "doc";
String style = "scalc: HTML (StarCalc)";
FileInputStream fis1 = null;
OutputStream os1 = null;
InputStream is1 = null;
try
{
File file1 = new File(uploadFileName);//Create a new file named uploadName.
fis1 = new FileInputStream(file1);// Fill file into FileInputstream.
// the URL of your upload application
URL testPost = new
URL("http","192.168.1.90",80,"/servlet/IsItWorking");//Init URL
URLConnection huc1 = testPost.openConnection();//Open connection
((HttpURLConnection)huc1).setRequestMethod( "POST");
System.err.println("OPEN connection.");
huc1.setAllowUserInteraction(true);//
huc1.setDoOutput(true); // turns it into a post
// huc1.setUseCaches(false);
// huc1.setRequestProperty("Host", "hi/iq");
// huc1.setRequestProperty( "Referer", "http://192.168.1.90:80/servlet/ConverterServletLI");
huc1.setRequestProperty("User-Agent", "IE/6.0 (Windows; U; Windows NT 5.1; en-US; rv:1.2) Gecko/20021126");
huc1.setRequestProperty("Accept", "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1");
huc1.setRequestProperty("Accept-Language", "en-us, en;q=0.50");
huc1.setRequestProperty("Accept-Encoding", "gzip, deflate, compress;");
huc1.setRequestProperty("Accept-Charset", "ISO-8859-1, utf-8;q=0.66, *;");
huc1.setRequestProperty("Keep-Alive", "300");
huc1.setRequestProperty("Connection", "Keep-Alive");
huc1.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + CONTENT_BOUNDARY);
huc1.setRequestProperty("CACHE-CONTROL", "no-cache");
file://huc1.setRequestProperty("Content-Length","227840" );
// OutputStreamWriter os1 = new OutputStreamWriter(huc1.getOutputStream());
os1 = huc1.getOutputStream();
System.err.println("GET OUT STREAM");
// Field 1 a Field of data
os1.write((CONTENT_BOUNDARY + "\r\n" +"Content-Disposition: form-data; name=\"converttype\"\r\n\r\n"+"swriter: MS Word 97','swriter: MS Word 97"+"\r\n").getBytes());
os1.write((CONTENT_BOUNDARY + "\r\n" +"Content-Disposition: form-data; name=\"extension\"\r\n\r\n"+ext+"\r\n").getBytes());
// os1.write((CONTENT_BOUNDARY + "\r\n" +"Content-Disposition: form-data; name=\"txtTitle\"\r\n\r\\r\n").getBytes());
// Field 2 - the file, name is "uploadFile"
os1.write((CONTENT_BOUNDARY + "\r\n" + "Content-Disposition: form-data; name=\"DocumentToBeConverted\"; filename=\"" +uploadFileName+ "\"\r\nContent-Type: application/octet-stream\r\n\r\n").getBytes());
byte [] fileStuff = new byte[512];
int howMany = -1;
int totMany = 0;
howMany = fis1.read(fileStuff, 0, 512);
while (howMany != -1) {
totMany += howMany;
os1.write(fileStuff, 0, howMany);
howMany = fis1.read(fileStuff, 0, 512);
}
System.err.println("read " + totMany + " bytes from file, wrote to outputstream.");
fis1.close();
fis1 = null;
os1.write(("\r\n" + CONTENT_BOUNDARY + "--\r\n").getBytes());
is1 = huc1.getInputStream();
byte [] urlStuff = new byte[512];
howMany = is1.read(urlStuff, 0, 512);
while (howMany != -1) {
System.out.write(urlStuff, 0, howMany);
howMany = is1.read(urlStuff, 0, 512);
}
System.err.println("that was your output.");
is1.close();
is1 = null;
os1.close();
os1 = null;
}
catch (Exception ex) {
System.err.println("Exception: " + ex);
ex.printStackTrace();
}
finally {
if (fis1 != null)
try {
fis1.close();
}
catch (Exception ok_to_eat) {
// ok to ignore this
}
if (is1 != null)
try {
is1.close();
}
catch (Exception ok_to_eat) {
// ok to ignore this
}
if (os1 != null)
try {
os1.close();
}
catch (Exception ok_to_eat) {
// ok to ignore this
}
}
}
}
Received on Monday, 10 November 2003 03:07:03 UTC