今天在作Android項目的時候遇到一個問題,需求是向服務器上傳一張圖片,要求把圖片轉化成圖片流放在 json字符串裏傳輸。android
相似這樣的: {"name":"jike","age":"20","pic":"圖片流"} ,json
把圖片轉化爲圖片流要用到 Base64 的技術。服務器
一、Base64 的做用 網絡
主要不是加密,它主要的用途是把一些二進制數轉成普通字符用於網絡傳輸。
因爲一些二進制字符在傳輸協議中屬於控制字符,不能直接傳送須要轉換一下就能夠了。 eclipse
二、如何得到BASE64 代碼,有兩種方式ui
方式一:解決eclipse中沒法直接使用Base64Encoder的問題google
方式二: 下載源代碼,而後把代碼導入本身的項目中編碼
csdn下載地址: http://download.csdn.net/detail/yanzi2015/8685199加密
三、Base64對字符串進行編碼和解碼spa
package com.android20; import sun.misc.BASE64Decoder; public class Bian { //將 s 進行 BASE64 編碼 public static String getBASE64(String s) { if (s == null) return null; return (new sun.misc.BASE64Encoder()).encode( s.getBytes() ); } //將 BASE64 編碼的字符串 s 進行解碼 public static String getFromBASE64(String s) { if (s == null) return null; BASE64Decoder decoder = new BASE64Decoder(); try { byte[] b = decoder.decodeBuffer(s); return new String(b); } catch (Exception e) { return null; } } }