本文章是通过HttpClient 4.1.1 实现文件上传,在上传前请先下载 h t t p m i m e - 4 . 0 . x . j a r 因为要用到MultipartEntity这个类
好了 下面上代码
/**
* android上传图片到服务器
*
* @param uploadFile 需要上传的文件路径
* @param actionUrl 请求的url
* @return 返回响应的内容
*/
public void uploadFile(String actionUrl, String uploadFile) {
HttpClient client=null;
HttpPost post=null;
String resp="";
try {
client = new DefaultHttpClient();
post = new HttpPost(actionUrl);
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
//action为请求参数 ‘upload’为参数的值 可以自己设置 主要看你服务器需要什么参数
//如果有多个参数可同理添加
entity.addPart("action", new StringBody("upload"));
File file = new File(uploadFile);
//"image/pjpeg"为图片上传的格式 也可以为image/x-png、image/png、image/gif、image/jpeg
//用那一个就看你服务器的要求了
entity.addPart("file", new FileBody(file, "image/pjpeg"));
post.setEntity(entity);
HttpResponse response = client.execute(post);
int res = response.getStatusLine().getStatusCode();
if (res == 200) {
HttpEntity httpEntity = response.getEntity();
resp = EntityUtils.toString(httpEntity, "UTF-8");
}else{
resp="上传失败!!!";
}
Log.i("aaa", "uploadFile=" + resp);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{//释放资源
client.getConnectionManager().shutdown();
}
}