为了账号安全,请及时绑定邮箱和手机立即绑定

Volley -- 使用volley上传图片

标签:
Android

/* 

 实现思路

 1.将要上传的图片转为 Bitmap 类型 

 2.将Bitmap类型的图片编译成 Base64 的字节流

 3.通过 Volley 的post方法上传上去

 */

 // 实现第一步 将存储卡中的文件转为Bitmap 类型

 FileInputStream fis = new FileInputStream("图片的路径");

 Bitmap bitmap = BitmapFactory.decodeStream(fis); 

 // 实现第二步 Bitmap 转 Base64 的字节流 

 public static String bitmapToBase64(Bitmap bitmap) {

 String result = null; ByteArrayOutputStream baos = null;

 try {

 if (bitmap != null) { 

 baos = new ByteArrayOutputStream();

 bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); 

 baos.flush(); baos.close(); byte[] bitmapBytes = baos.toByteArray();

 result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT); 

 }

 } catch (IOException e) { 

 e.printStackTrace(); 

 } finally {

 try { 

 if (baos != null) {

 baos.flush(); baos.close(); 

 } 

 } catch (IOException e) {

 e.printStackTrace();

 } 

 }

 return result;

 }

 // 然后使用上一个博客提到的Volley post上传参数一样上传上去就好了 

 String user_img =bitmapToBase64(bitmap); 

 requestQueue = Volley.newRequestQueue(this); 

 stringRequest = new StringRequest(Request.Method.POST, "请求地址", new Response.Listener<String>() { 

 @Override 

 public void onResponse(String response) {

 // 返回的json参数 response 

 } 

 }, new Response.ErrorListener() { 

 @Override 

 public void onErrorResponse(VolleyError error) {

 // 请求错误就会进入这里 

 } }) {

 //////////////// 在这里可以获取Cookie或者是设置Cookie

 // 像服务器post提交参数的方法

 @Override 

 protected Map<String, String> getParams() {

 // 在这里设置需要post的参数 

 HashMap<String, String> map = new HashMap<String, String>(); 

 map.put("user_img", user_img); return map; 

 } 

 };

 requestQueue.add(stringRequest);

原文链接:http://www.apkbus.com/blog-722618-72771.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消