Android框架之AsyncHttpClient
原文来自http://www.jianshu.com/p/55337dfd311b
今天利用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() {/*** 上传成功调用函数*/@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相关推荐
- android http最新框架,Android框架学习笔记02AndroidAsycHttp框架
上一篇中我们介绍了OkHttp3.0框架的基本使用方法,这一篇我们学习一下Android的另外一个网络请求框架--AsyncHttpClient框架.Asynchttpclient框架是一个开源的异步 ...
- 【Android 系统开发】Android框架 与 源码结构
一. Android 框架 Android框架层级 : Android 自下 而 上 分为 4层; -- Linux内核层; -- 各种库 和 Android运行环境层; -- 应用框架层; -- 应 ...
- 从零开始搭建Android框架系列
原文链接:http://www.jianshu.com/nb/3767449 开篇介绍和工程目录结构[从零开始搭建android框架系列(1)] 不容错过,最全的安卓架构合集[从零开始搭建androi ...
- 浅入浅出 Android 安全:第四章 Android 框架层安全
第四章 Android 框架层安全 来源:Yury Zhauniarovich | Publications 译者:飞龙 协议:CC BY-NC-SA 4.0 如我们在第1.2节中所描述的那样,应用程 ...
- 一个C#开发者用Java搭建Android框架的心路历程
前言 Java框架实在是太多了,因为是初学乍练,所以,只好以百度为标准选择框架了. Java的框架文章太难写了,因为他引用了太多框架,而没一个框架都有很繁琐的配置,把每个框架都写一遍,就等于写书了:所 ...
- Android框架之ButterKnife(黄油刀)
Android框架之ButterKnife(黄油刀) Butterknife简介 ButterKnife是一个专注于Android系统的View注入框架,可以减少大量的findViewById以及se ...
- 360 android框架,360 董福源 - Android框架虚拟化实战.pdf
Android框架虚拟化实战 董福源 360手机卫士 2017. 什么是虚拟化 原生apk 在封闭系统内 免安装运行 Android系统的一种沙箱技术 2017. 技术架构 Sandbox apps ...
- Android框架排行榜,上百项资源汇总不容错过
1.Retrofit 一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言 上榜理由:Retrofit以21.8k的stars量雄踞github中 ...
- Android框架排行榜
Android框架排行榜 1.Retrofit 一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言 上榜理由:Retrofit以21.8k的st ...
- 60个实用Android框架排行榜
1.Retrofit 一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言 上榜理由:Retrofit以21.8k的stars量雄踞github中 ...
最新文章
- 常用的shell脚本案例(14.04.15更新)
- 第一个程序 - Windows程序设计(SDK)001
- 养成一个习惯需要多久?
- java file源码_java File源码理解,探索File路径
- vue2.0+stylus实现星级评定组件,computed计算属性实现全星半星,动态改变星级,多种星星规格
- jsp java注释_jsp注释方式
- C/C++程序员必读的十本书(上)
- a java虚拟机_Java虚拟机
- 变的不只有外观!iPhone 14 Pro更多细节曝光:相机、快充大升级
- cout 数组_C++数组|快速排序、二分法查找及其时间复杂度
- 2. 字符串、向量和数组
- Python标准库11 多进程探索 (multiprocessing包)
- 银博进销存 v2.21.1 医疗器械版 下载
- java微服务Nacos配置管理
- Android录制声音文件(音频),并播放
- Perculia for Mac(苹果电脑蓝牙助手)
- Linux基础命令-大全
- 麻省电气工程与计算机科学专业,麻省理工学院电气工程与计算机科学专业解读...
- python输入10个整数_python练习:编写一个程序,要求用户输入10个整数,然后输出其中最大的奇数,如果用户没有输入奇数,则输出一个消息进行说明。...
- 为何说KubeMQ会是Kafka的替代品?
热门文章
- 852 -山脉阵列中的峰值指数
- 【模板】线段树(区间加)
- Windows代替touch命令
- 面向对象基础(继承类,抽象方法,接口,委托和事件)
- NSTimer的使用
- (转)什么是Cookies详解
- tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError:)...
- Linux 网卡流量查看
- vue+webpack+mint-ui 示例 (如何使用mint-ui组件)
- Sony本如何进入biso设置