/* newName: 上传后在服务器上的文件名称
* uploadFile: 要上传的文件路径
* actionUrl: 服务器上对应的程序路径 */
private String newName = "image.jpg";
private String uploadFile = "/data/data/irdc.example9/image.jpg";
private String actionUrl = "http://127.127.0.1/upload/upload.jsp";
private void uploadFile()
{
String end = "\r\n";
String twoHyphens = "---";
String boundary = "*****";
URL url = new URL(actionUrl);
HttpURLConnection con = (HttpURLConnection)url.openConnection();
/*允许 Input、Output, 不使用Cache*/
con.setDoInput(true);
con.setDoOutput(true);
/*设置传送的method=POST*/
con.setRequestMethod("POST");
/*setRequestProperty*/
con.setRequestProperty("Connection", "Keep-Alive");
con.setRequestProperty("Charset", "UTF-8");
con.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
/*设置DataOutputStream*/
DataOutputStream ds = new DataOutputStream(con.getOutputStream);
ds.writeBytes(twoHyphens + boundary + end);
ds.writeBytes("Content-Disposition: form-data; " + "name=\"file1\";filename=\"" + newName + "\"" + end);
ds.writeBytes(end);
/*取得文件的FileInputStream*/
FileInputStream fStream = new FileInputStream(uploadFile);
/*设置每次写入1024bytes*/
int bufferSize = 1024;
byte[] buffer = new byte[buffersize];
int length = -1;
/*从文件读取数据至缓冲区*/
while((length = fStream.read(buffer)) != -1)
{
/*将资料写入DataOutputStream中*/
ds.write(buffer 0, length);
}
ds.writeBytes(end);
ds.writeBytes(twoHyphens + boundary + twoHyphens + end);
fStream.close();
ds.flush();
/*取得Response*/
InputStream is = conn.getInputStream();
int ch;
StringBuffer b = new StringBuffer();
while((ch = is.read()) != -1)
{
b.append((char)ch);
}
ds.close();
}