首先致谢:http://www.jb51.net/article/129743.htm

咱们不是代码的生产者,只是代码的搬运工。

场景描述:Android客户端需要上传头像等图片到服务器,经双方协商决定采用base64方式上传。但是客户端直接将bitmap转成base64上传,服务端却无法解析。

问题剥析:经查验,发现客户端直接上传的base64,缺少头文件,导致服务器无法解析。

头文件格式:data:image/*;base64, +base64字符串 //*替换成客户端转换的png/jpg/jpeg等格式

尝试解决:

  思路一:接口添加字段,客户端需要上传格式字段    ——缺点:接口复杂化,多字段,不利于维护

  思路二:双方约定一个格式,使用统一格式编码解码   ——缺点:接口限制性太高,缺少灵活性

  思路三:直接在客户端对于生成的base64字符串进行拼接  ——优点:只需要在客户端进行额外处理接口,不必改动接口

data:image/*;base64, +base64字符串 //*替换成客户端转换的png/jpg/jpeg等格式

最终方案:采用思路三,考虑到复用性问题,直接在工具类中统一完成拼接,得到完美解决。

附:

 /**
* 通过Base64将Bitmap转换成Base64字符串
* @param bit
* @return
*/
public String Bitmap2StrByBase64(Bitmap bit){
ByteArrayOutputStream bos=new ByteArrayOutputStream();
bit.compress(CompressFormat.JPEG, 40, bos);//参数100表示不压缩
byte[] bytes=bos.toByteArray();
return Base64.encodeToString(bytes, Base64.DEFAULT);
}

通过Base64将Bitmap转换成Base64字符串

客户端通过base64上传bitmap服务器的更多相关文章

  1. 在C#客户端用HTTP上传文件到Java服务器

    在C#客户端用HTTP上传文件到Java服务器  来源:http://www.cnblogs.com/AndyDai/p/5135294.html 最近在做C / S 开发,需要在C#客户端上传文件到 ...

  2. 使用canvas给图片添加水印, canvas转换base64,,canvas,图片,base64等转换成二进制文档流的方法,并将合成的图片上传到服务器,

    一,前端合成带水印的图片 一般来说,生成带水印的图片由后端生成,但不乏有时候需要前端来处理.当然,前端处理图片一般不建议,一方面js的处理图片的方法不全,二是有些老版本的浏览器对canvas的支持度不 ...

  3. MVC图片上传、浏览、删除 ASP.NET MVC之文件上传【一】(八) ASP.NET MVC 图片上传到服务器

    MVC图片上传.浏览.删除   1.存储配置信息 在web.config中,添加配置信息节点 <appSettings> <add key="UploadPath" ...

  4. 使用html5 FileReader获取图片,并异步上传到服务器(不使用iframe)

    使用html5 FileReader获取图片,并异步上传到服务器(不使用iframe)   原理: 1.使用FileReader 读取图片的base64编码 2.使用ajax,把图片的base64编码 ...

  5. 今天上传公司服务器出现的.net framework版本错误问题

    今天做好一个网站(.net4.0),里面有静态页面也有aspx页面,发布后,满心欢喜的上传到服务器,运行后,静态页没有问题,可是通过导航栏一旦点击进入aspx页面,就会出现错误 ,提示web.conf ...

  6. HTML5 本地裁剪图片并上传至服务器(转)

    很多情况下用户上传的图片都需要经过裁剪,比如头像啊什么的.但以前实现这类需求都很复杂,往往需要先把图片上传到服务器,然后返回给用户,让用户确定裁剪坐标,发送给服务器,服务器裁剪完再返回给用户,来回需要 ...

  7. 前端借助dom-to-image把HTML转成图片并通过ajax上传到服务器

    之前接到了一个任务,把jsp中的table转成一个图片,保存在指定文件夹并显示在前端. 我的思路是:一.引用第三方js在前端把table转成图片 二.通过ajax把图片上传到服务器,保存在指定文件夹 ...

  8. 使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器

    使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器 ajax上传主要使用了 var reader = new FileReader() 此方法 js图片压缩主要是利用canvas进 ...

  9. 【Web】前端裁剪图片,并上传到服务器(Jcrop+canvas)

    web网站中常常有的功能:上传头像.上传封面等:一般图片都有一定的比例限制,所以需要前端在上传图片时,进行裁剪,并把裁剪后的图片进行上传. 本例采用Jcrop插件实现裁剪效果,canvas裁剪图片,并 ...

随机推荐

  1. SQL to MongoDB Mapping Chart

    http://docs.mongodb.org/manual/reference/sql-comparison/ In addition to the charts that follow, you ...

  2. noip模拟赛 街灯

    分析:对于前30%的数据直接暴力模拟即可,对于另外30%的数据,因为每次的p是一样的,所以可以用莫队来维护,先离散化一下,再用一个桶统计次数. 100%的做法和之前做过的一道模拟赛题很像,当模数很小的 ...

  3. HBase shell的常用命令(CRUD)

    @来源是传智播客hadoop的视频教程,觉得入门不错,就copy过来了 一.启动HBase: sudo -i  cd /home/cx/itcast/hbase-1.2.6/bin  ./start- ...

  4. poj 2455

    题意:由一个点走到另一个点,中间的点可以重复到达,但边只能经过一次,问T条边不重复的路径里,最长的边的最小值. 分析:由于点是可以重用的,因此不必拆点.这道题有重边,而且重边都必须保留,因为点是可以重 ...

  5. mongodb分片集搭建

    拓扑图如下: 从图中可以看到有四个组件:mongos.config server.shard.replica set. mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要 ...

  6. ms sql SERVER 下载

    企业版DVD SQL Server 2005 Enterprise Edition(支持超大型企业) 32 位DVD: ed2k://|file|cs_sql_2005_ent_x86_dvd.iso ...

  7. NetCore +EFCore+SqlServer根据数据库生成实体类到项目中

    转载自:https://www.cnblogs.com/yangjinwang/p/9516988.html 1.点击“工具”->“NuGet包管理器”->“程序包管理器控制台” 分别安装 ...

  8. 【python】蛋疼的中文乱码解决方案

    转自: http://yooooo.us/2013/python-encoding-decoding?variant=zh-cn

  9. go语言使用官方的 log package 来记录日志

    原文:https://www.goinggo.net/2013/11/using-log-package-in-go.html ------------------------------------ ...

  10. 关于ZEDboard

    核心芯片:核心ZYNQ XC7Z020CLG484 双核Cortex-A9 MPcore.主频达到667MHz,板载512MB内存 12V@3A的电源适配器 使用的SD卡中预装了Linaro系统,这是 ...