Android提交表单并上传图片到web服务器,直接上代码
用到了Apache的HttpClient.jar
/**
* 提交表单并上传文件到网站
* @param url 提交的接口
* @param param 参数 <键,值>
* @param bitmap 图片内容
*/
public static String postForm(String url,Map<String, String> param, Bitmap bitmap)
{
try {
url="http://localhost:4657" +
"/api/SaveNeed";
HttpPost post = new HttpPost(url);
HttpClient client = new DefaultHttpClient();
String BOUNDARY = "*****"; // 边界标识
MultipartEntity entity = new MultipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE, BOUNDARY, null);
if (param != null && !param.isEmpty()) {
entity.addPart("needList", new StringBody(
param.get("needList"), Charset.forName("UTF-8")));
}
saveImageFile(bitmap);
String path = Environment.getExternalStorageDirectory()
+ "/temple/temp.jpg";
File file = new File(path);
// 添加文件参数
if (file != null && file.exists()) {
entity.addPart("file", new FileBody(file));
}
post.setEntity(entity);
HttpResponse response;
response = client.execute(post);
int stateCode = response.getStatusLine().getStatusCode();
StringBuffer sb = new StringBuffer();
if (stateCode == HttpStatus.SC_OK) {
HttpEntity result = response.getEntity();
if (result != null) {
InputStream is = result.getContent();
BufferedReader br = new BufferedReader(
new InputStreamReader(is));
String tempLine;
while ((tempLine = br.readLine()) != null) {
sb.append(tempLine);
}
}
}
post.abort();
return sb.toString();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
Mikel