Java Base64解码Android Base64编码上传的图片
2015-07-09 13:06:10  By: dwtedx

今天在做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的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+