原文来自http://www.jianshu.com/p/55337dfd311b

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

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

  1. 将图片bitmap进行base64编码;

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

  3. 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() {/*** 上传成功调用函数*/@Overridepublic void onSuccess(int arg0, Header[] arg1, byte[] arg2) {// TODO Auto-generated method stubToast.makeText(PersonalMessage.this, "上传成功", 1).show();}/*** 上传失败调用函数*/@Overridepublic void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {// TODO Auto-generated method stubToast.makeText(PersonalMessage.this, "上传失败", 1).show();}});}

服务器端php代码:


<?php$filename = "images/".$_POST['userName'];$file = fopen($filename.".jpg","w");$date = base64_decode($_POST['img']);fwrite($file,$date);fclose($file);?>

这样就OK了!

Android框架之AsyncHttpClient相关推荐

  1. android http最新框架,Android框架学习笔记02AndroidAsycHttp框架

    上一篇中我们介绍了OkHttp3.0框架的基本使用方法,这一篇我们学习一下Android的另外一个网络请求框架--AsyncHttpClient框架.Asynchttpclient框架是一个开源的异步 ...

  2. 【Android 系统开发】Android框架 与 源码结构

    一. Android 框架 Android框架层级 : Android 自下 而 上 分为 4层; -- Linux内核层; -- 各种库 和 Android运行环境层; -- 应用框架层; -- 应 ...

  3. 从零开始搭建Android框架系列

    原文链接:http://www.jianshu.com/nb/3767449 开篇介绍和工程目录结构[从零开始搭建android框架系列(1)] 不容错过,最全的安卓架构合集[从零开始搭建androi ...

  4. 浅入浅出 Android 安全:第四章 Android 框架层安全

    第四章 Android 框架层安全 来源:Yury Zhauniarovich | Publications 译者:飞龙 协议:CC BY-NC-SA 4.0 如我们在第1.2节中所描述的那样,应用程 ...

  5. 一个C#开发者用Java搭建Android框架的心路历程

    前言 Java框架实在是太多了,因为是初学乍练,所以,只好以百度为标准选择框架了. Java的框架文章太难写了,因为他引用了太多框架,而没一个框架都有很繁琐的配置,把每个框架都写一遍,就等于写书了:所 ...

  6. Android框架之ButterKnife(黄油刀)

    Android框架之ButterKnife(黄油刀) Butterknife简介 ButterKnife是一个专注于Android系统的View注入框架,可以减少大量的findViewById以及se ...

  7. 360 android框架,360 董福源 - Android框架虚拟化实战.pdf

    Android框架虚拟化实战 董福源 360手机卫士 2017. 什么是虚拟化 原生apk 在封闭系统内 免安装运行 Android系统的一种沙箱技术 2017. 技术架构 Sandbox apps ...

  8. Android框架排行榜,上百项资源汇总不容错过

    1.Retrofit 一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言 上榜理由:Retrofit以21.8k的stars量雄踞github中 ...

  9. Android框架排行榜

    Android框架排行榜 1.Retrofit 一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言 上榜理由:Retrofit以21.8k的st ...

  10. 60个实用Android框架排行榜

    1.Retrofit 一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言 上榜理由:Retrofit以21.8k的stars量雄踞github中 ...

最新文章

  1. 常用的shell脚本案例(14.04.15更新)
  2. 第一个程序 - Windows程序设计(SDK)001
  3. 养成一个习惯需要多久?
  4. java file源码_java File源码理解,探索File路径
  5. vue2.0+stylus实现星级评定组件,computed计算属性实现全星半星,动态改变星级,多种星星规格
  6. jsp java注释_jsp注释方式
  7. C/C++程序员必读的十本书(上)
  8. a java虚拟机_Java虚拟机
  9. 变的不只有外观!iPhone 14 Pro更多细节曝光:相机、快充大升级
  10. cout 数组_C++数组|快速排序、二分法查找及其时间复杂度
  11. 2. 字符串、向量和数组
  12. Python标准库11 多进程探索 (multiprocessing包)
  13. 银博进销存 v2.21.1 医疗器械版 下载
  14. java微服务Nacos配置管理
  15. Android录制声音文件(音频),并播放
  16. Perculia for Mac(苹果电脑蓝牙助手)
  17. Linux基础命令-大全
  18. 麻省电气工程与计算机科学专业,麻省理工学院电气工程与计算机科学专业解读...
  19. python输入10个整数_python练习:编写一个程序,要求用户输入10个整数,然后输出其中最大的奇数,如果用户没有输入奇数,则输出一个消息进行说明。...
  20. 为何说KubeMQ会是Kafka的替代品?

热门文章

  1. 852 -山脉阵列中的峰值指数
  2. 【模板】线段树(区间加)
  3. Windows代替touch命令
  4. 面向对象基础(继承类,抽象方法,接口,委托和事件)
  5. NSTimer的使用
  6. (转)什么是Cookies详解
  7. tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError:)...
  8. Linux 网卡流量查看
  9. vue+webpack+mint-ui 示例 (如何使用mint-ui组件)
  10. Sony本如何进入biso设置