android asynchttpclient 设置编码格式,Android框架之AsyncHttpClient

今天利用AsyncHttpClient框架实现将图片上传到服务器。

步骤和思路很简单主要分为三步:

将图片bitmap进行base64编码;

将编码后的String通过AsyncHttpClient上传给服务器的php;

php中将获取的String利用base64解码保存到服务器;

其中android端Java代码如下:

/**

* 将图片上传到服务器

* @param bt

* 将拿到的bitmap进行base64编码

* 利用AsyncHttpClient框架将编码后的字符传递上去

* 在服务器php中接收,并保存在服务器中

*/

private void sendImage(Bitmap bt)

{

ByteArrayOutputStream stream = new ByteArrayOutputStream();

/**

* 压缩图片

* 第一个参数指定bitmap格式

* 第二个参数压缩的比例

* 第三个参数是输出流

*/

bt.compress(Bitmap.CompressFormat.JPEG, 60, stream);

byte[] bytes = stream.toByteArray();

//将bitmap进行Base64编码

String img = new String(Base64.encode(bytes, Base64.DEFAULT));

AsyncHttpClient cilent = new AsyncHttpClient();

RequestParams params = new RequestParams();

params.add("img", img);

params.add("userName", userName);//这里由于需要,多传入了一个参数,读者可以忽略

System.out.println("params"+params.toString());

cilent.post(sendImageUrl, params, new AsyncHttpResponseHandler() {

/**

* 上传成功调用函数

*/

@Override

public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {

// TODO Auto-generated method stub

Toast.makeText(PersonalMessage.this, "上传成功", 1).show();

}

/**

* 上传失败调用函数

*/

@Override

public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {

// TODO Auto-generated method stub

Toast.makeText(PersonalMessage.this, "上传失败", 1).show();

}

});

}

服务器端php代码:

$filename = "images/".$_POST['userName'];

$file = fopen($filename.".jpg","w");

$date = base64_decode($_POST['img']);

fwrite($file,$date);

fclose($file);

?>

这样就OK了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值