android客服端上传图片到服务器,使用的xml来传输base64编码后的图片
我使用的是android自带的httpclient来发送post请求的,我也想过自己使用post方式来发送数据,但是,数据在服务器端进行base64解码的时候保存,我也没找出原因,所以就没写出来了
发送post请求就是因为post允许一次传输的数据量大,因为图片经过base64编码后,数据量大,如果采用get或者其他的方式来传输数据,传输效率不过,而且数据量大小受到限制
1.获取android客服端图片
- //对文件的操作
- FileInputStream in = new FileInputStream(Environment.getExternalStorageDirect
ory() + "/images/musicmax.png"); - byte buffer[] = StreamUtil.read(in);//把图片文件流转成byte数组
- byte[] encod = Base64.encode(buffer,Base64.DEFAULT);//使用base64编码
- //对文件的操作
- FileInputStream
in = new FileInputStream(Environment.getExternalStorageDirect ory() + "/images/musicmax.png"); - byte
buffer[] = StreamUtil.read(in);//把图片文件流转成byte数组 - byte[]
encod = Base64.encode(buffer,Base64.DEFAULT);//使用base64编码
//对文件的操作 FileInputStream in = new FileInputStream(Environment.getExternalStorageDirectory() + "/images/musicmax.png"); byte buffer[] = StreamUtil.read(in);//把图片文件流转成byte数组 byte[] encod = Base64.encode(buffer,Base64.DEFAULT);//使用base64编码
2.发送post请求,注意android客服端访问网络记得要加访问网络的权限
- String path ="http://192.168.1.173:7999/videonews/TestServlet";
- Map params = new HashMap();//定义一个保存key-value的Map用于保存需要传输的数据
- params.put("value", new String(encod));//保存数据到map对象
- Log.i(TAG,new String(encod));
- if(StreamUtil.sendHttpClientPOSTReques
t(path, params, "utf-8")){ //使用帮助类来发送HttpClient来发送post请求 - Log.i(TAG, "success :" + path + "----:decode:----" + new String(Base64.decode(encod, Base64.DEFAULT)));
- }
- String
path ="http://192.168.1.173:7999/videonews/TestServlet"; - Map
params = new HashMap();//定义一个保存key-value的Map用于保存需要传输的数据 -
- params.put("value",
new String(encod));//保存数据到map对象 - Log.i(TAG,new