ORACLE的BLOB和BASE64
最近的项目中,要用到ORACLE的BLOB和BASE64。场景是要把图片以BLOB放到ORACLE里去,
然后在WS里,以BASE64加密后,返回给。NET,。NET再解码还原之。过程小结之:
1JAVA上传图片到BLOB字段就不说了,比较简单
2把BLOB用BASE64加密的方法如下:
publicstaticStringioToBase64()throwsIOException{
Stringfilename="d:/sunset.jpg";//源文件
StringstrBase64=null;
try{
InputStreamin=newFileInputStream(fileName);
//in.available()返回文件的字节长度
byte[]bytes=newbyte[in.available()];
//将文件中的内容读入到数组中
in.read(bytes);
strBase64=newBASE64Encoder().encode(bytes);//将字节流数组转换为字符串
in.close();
}catch(FileNotFoundExceptionfe){
fe.printStackTrace();
}catch(IOExceptionioe){
ioe.printStackTrace();
}
returnstrBase64;
}
3。NET的WEBSERVICE接收这个字符串,解BASE64之,C#里比较简单,并且把东西保存了
WebReference.HelloWorldImplServiceh=newWebReference.HelloWorldImplService();
stringstr=h.ReturnBase64String();
byte[]bs=Convert.FromBase64String(str);
FileStreamfile=newFileStream("c:/hello.jpg",FileMode.Create);
file.Write(bs,0,bs.Length);
file.Close();