android 上传图片到服务器

本文章是通过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();
		}

	}


 


 

你可能感兴趣的:(android 上传图片到服务器)