1 base64 decode
select utl_rawcast_to_varchar2(utl_encodebase64_decode(utl_rawcast_to_raw('dGVzdA=='))) from dual2 base64 encode
select utl_rawcast_to_varchar2(utl_encodebase64_encode(utl_rawcast_to_raw('test'))) from dual你已经知道取出来的是jpeg 文件, 直接写到文件不就行了。
FileOutputStream out = new FileOuputStream("c:\tempjpg");
outwrite(bytes);
二进制不能直接转化,blob可能存放的是普通文件,比如,txt,等,也可以存储纯文本(当然这种情况下就没必要用blob了), 需要通过外部程序进行处理,使用blob是不得已的情况下才用的,比如要存储文件,因为有时候会造成很大的不方便,比如使用dblink就不能查询blob字段,这点要注意
这个试下吧
<body>
<%
//获取对象(根据主键)的sql语句
String showImage = " select "+
" from 存放的表 "+
" where id='1' " ;
BufferedInputStream inputImage = null;
try{
//conn为一个Connection对象
Statement st = conncreateStatement();
//获取结果集
ResultSet rs=stexecuteQuery(showImage);
//输出文件名
String filename="";
if(rsnext()) {
Blob blob = (Blob)rsgetBlob("BINARYFILE");
filename=rsgetString("FILENAME");
//读取字节到数据流中
inputImage = new BufferedInputStream(blobgetBinaryStream());
}
BufferedImage image = null;
image=ImageIOread(inputImage);
//获取响应的输出流
ServletOutputStream so = responsegetOutputStream();
//创建到页面
JPEGImageEncoder encoder = JPEGCodeccreateJPEGEncoder(so);
encoderencode(image);
inputImageclose();
}
%>
</body>
<%
catch(Exception e){
}
finally{
closeConn(conn);
}
%>
以上就是关于oracle中如何实现blob和base64相互转换全部的内容,包括:oracle中如何实现blob和base64相互转换、从数据库中取出的BLOB格式图片,写到一个路径下面、ORACLE数据库BLOB如何转化类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)