最近的項目中,要用到ORACLE的BLOB和BASE64。情境是要把圖片以BLOB放到ORACLE裡去,
然後在WS裡,以BASE64加密後,返回給。NET,。NET再解碼還原之。過程小結之:
1 JAVA上傳圖片到BLOB欄位就不說了,比較簡單
2 把BLOB用BASE64加密的方法如下:
public static String ioToBase64() throws IOException {
String fileName = "d:/sunset.jpg"; //源檔案
String strBase64 = null;
try {
InputStream in = new FileInputStream(fileName);
// in.available()返迴文件的位元組長度
byte[] bytes = new byte[in.available()];
// 將檔案中的內容讀入到數組中
in.read(bytes);
strBase64 = new BASE64Encoder().encode(bytes); //將位元組流數群組轉換為字串
in.close();
} catch (FileNotFoundException fe) {
fe.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
return strBase64;
}
3 。NET的WEBSERVICE接收這個字串,解BASE64之,C#裡比較簡單,並且把東西儲存了
WebReference.HelloWorldImplService h = new WebReference.HelloWorldImplService();
string str = h.ReturnBase64String();
byte[] bs = Convert.FromBase64String(str);
FileStream file = new FileStream("c:/hello.jpg", FileMode.Create);
file.Write(bs, 0, bs.Length);
file.Close();