通过PHP检索存储在Oracle数据库中的图像

时间:2014-03-09 07:46:35

标签: php image oracle image-processing lob

我必须将Oracle数据库中存储的图像显示为OCI-Lob对象。

我使用了以下代码:

if(oci_fetch_array($rssqlclass,OCI_ASSOC | OCI_RETURN_LOBS)) {
  $a = oci_result($rssqlclass,"image");
}
header('Content-type: application/octet-stream;');
header('Content-disposition: attachment;filename='.$_GET['name']);

print $a->load(); 

我在上面找到了一些关于Google的研究代码。但那些似乎没有用。如何通过PHP提取存​​储在Oracle数据库中的图像。

提前致谢。

2 个答案:

答案 0 :(得分:1)

其实我的问题已经解决了。我在这里发布解决方案,以便其他任何面临同样问题的人都可以从中受益。

$sql="select photo from tblphoto where id='$id'  ";
$query= oci_parse($connect, $sql);
oci_execute($query); 
$showrow = oci_fetch_row($query);
if(!$showrow){
return;
}else{
$image=$showrow['0']->load();
header("Content-type: image/JPEG");
print $image;
}

我希望有一天能帮助别人。 BTW感谢大家的评论。 :)

答案 1 :(得分:0)

由于您使用的是OCI_RETURN_LOBS,因此您应该已经在第3行的$ a中使用了BLOB。您没有获取返回的数组,请尝试以下代码:

if($res = oci_fetch_array($rssqlclass,OCI_ASSOC | OCI_RETURN_LOBS)) {
  $a = $res['image'];
}
header('Content-type: application/octet-stream;');
header('Content-disposition: attachment;filename='.$_GET['name']);

print $a;