Android提交表单并上传图片到web服务器,直接上代码
用到了Apache的HttpClient.jar
/** * 提交表单并上传文件到网站 * @param url 提交的接口 * @param param 参数 <键,值> * @param bitmap 图片内容 */ public static String postForm(String url,Map<String, String> param, Bitmap bitmap) { try { "/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 ; } |