java使用http往服务器上传文件(图片)

使用http往服务端上传文件,要使用MultipartEntity,需要引入httpmime包,在附件中。


public static String postFile(String uploadFile, final String uploadType, String userId) throws ClientProtocolException, IOException, JSONException {
	   HttpClient httpclient = new DefaultHttpClient();
	   //设置通信协议版本
	   httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
	   Log.i("chopin", uploadFile);
	 
	   HttpPost httppost = new HttpPost(Const.ImageUpload);
	   
	 
	   File file = new File(uploadFile);
	    MultipartEntity mpEntity = new MultipartEntity(); //文件传输
	    ContentBody cbFile = new FileBody(file);
	    mpEntity.addPart("file", cbFile); 
	    mpEntity.addPart("userId",new StringBody(userId));
	    mpEntity.addPart("uploadType",new StringBody(uploadType));
	      


	   httppost.setEntity(mpEntity);
	   System.out.println("executing request " + httppost.getRequestLine());
	   
	   HttpResponse response = httpclient.execute(httppost);
	   HttpEntity resEntity = response.getEntity();

	   System.out.println(response.getStatusLine());//通信Ok
	   String json="";
	   String path="";
	   if (resEntity != null) {

	     json=EntityUtils.toString(resEntity,"utf-8");
	     Log.i("chopin", json);
	     JSONObject p=null;
	     try{
	   	  p=new JSONObject(json);
	   	  path=(String) p.get("path");
	     }catch(Exception e){
	   	  e.printStackTrace();
	     }
	   }
	   if (resEntity != null) {
	     resEntity.consumeContent();
	   }

	   httpclient.getConnectionManager().shutdown();
	   return path;
	 }

你可能感兴趣的:(java,android)