Java Base64解码Android Base64编码上传的图片
2015-07-09 13:06:10 By: shinyuu
今天在做Android文件上传的时候、发现用模拟表单提交的方式不太好、就换base64的方式来实现了、以前C#写接口的也是采用这种方式的、在java web(SSH)的后台应该也差不多的、把文件转换成Base64的String来传输文件、另外还必须将流转换成base64编码、然后才好传输
而且这样传输也会比较方便、一旦收到这个base64的字符串、接收端、需要将这个还原成流、保存为文件、本文主要提供Android端的编码和Java web后台的解码功能的代码实现、下面上源代码
Android端转Base64编码
/** * @Title: encodeTobase64 * @Description: TODO(这里用一句话描述这个方法的作用) * @param @param image * @param @return 设定文件 * @return String 返回类型 * @throws */ public static String encodeTobase64(Bitmap image) { Bitmap immagex = image; ByteArrayOutputStream baos = new ByteArrayOutputStream(); immagex.compress(Bitmap.CompressFormat.JPEG, 100, baos); byte[] b = baos.toByteArray(); String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT); return imageEncoded; }
Java Web 后台转码
1、使用commons-codec.jar
/** * BASE64字符串TO二进制数据 * @param bytes * @return */ public static byte[] decode(final byte[] bytes) { return Base64.decodeBase64(bytes); } /** * 二进制数据编码为BASE64字符串 * @param bytes * @return * @throws Exception */ public static String encode(final byte[] bytes) { return new String(Base64.encodeBase64(bytes)); }
2、sun.misc.BASE64Encoder
/** * 编码 * @param bstr * @return String */ public static String encode(byte[] bstr){ return new sun.misc.BASE64Encoder().encode(bstr); } /** * 解码 * @param str * @return string */ public static byte[] decode(String str){ byte[] bt = null; try { sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); bt = decoder.decodeBuffer( str ); } catch (IOException e) { e.printStackTrace(); } return bt; }
这里要说明的是、在Java Web后台将Base64的字符串转成文件的时候需要两个Jar包、一个是commons-codec-1.10-bin、另外一个是sun.misc.BASE64Decoder.jar、为了方便大家使用、我将这两个包都放到一起了、下载下面的附件就可以使用了
源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1qWoR1uc 密码: cant
若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力
想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)
或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)
如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教
为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)
感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛