手机端代码:
public
class
MainActivity
extends
Activity {
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.
activity_main
);
}
public
void
onclick(View view){
String uploadUrl =
"http://192.168.0.103:8080/upload/UploadServlet"
;//ip根据机器ip设置
String end =
"\r\n"
;
String twoHyphens =
"--"
;//两个连字符
String boundary =
"******"
;//分界符
String filename = Environment.getExternalStorageDirectory()+
"/my.jpg"
;//上传文件的路径
try
{
URL url =
new
URL(uploadUrl);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setDoInput(
true
);
httpURLConnection.setDoOutput(
true
);
httpURLConnection.setUseCaches(
false
);
httpURLConnection.setRequestMethod(
"POST"
);//必须大写
httpURLConnection.setRequestProperty(
"Connection"
,
"Keep-Alive"
);
httpURLConnection.setRequestProperty(
"Charset"
,
"UTF-8"
);
httpURLConnection.setRequestProperty(
"Content-type"
,
"multipart/form-data;boundary="
+boundary);
DataOutputStream dos =
new
DataOutputStream(httpURLConnection.getOutputStream());
dos.writeBytes(twoHyphens+boundary+end);
dos.writeBytes(
"Content-Disposition:form-data; name=\"file\"; filename=\""
+filename.substring(filename.lastIndexOf(
"/"
)+1)+
"\""
+end);
dos.writeBytes(end);
if
(!
new
File(filename).exists()){
Toast. makeText(
this
,
"文件不存在"
, 1000).show();
return
;
}
FileInputStream fis =
new
FileInputStream(filename);
byte
[] buf =
new
byte
[8192];
int
count = 0;
while
((count = fis.read(buf))>0){
dos.write(buf, 0, count);
}
fis.close();
dos.writeBytes(end);
dos.writeBytes(twoHyphens+boundary+twoHyphens+end);
dos.flush();
InputStream is = httpURLConnection.getInputStream();
InputStreamReader isr =
new
InputStreamReader(is,
"utf-8"
);
BufferedReader br =
new
BufferedReader(isr);
String result = br.readLine();
Toast. makeText(
this
, result, Toast.
LENGTH_LONG
).show();
dos.close();
is.close();
}
catch
(Exception e) {
e.printStackTrace();
}
}
}