Java Base64解码Android Base64编码上传的图片
程序员文章站
2021-12-02 19:47:47
...
今天在做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