0

我必须显示一个作为对象存储在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 的一些研究发现了上面的代码。但这些似乎不起作用。我应该怎么做才能提取存储在 Oracle 数据库中的图像PHP

提前致谢。

4

2 回答 2

2

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

$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;
}

我希望有一天它会对某人有所帮助。顺便说一句,感谢大家的评论。:)

于 2014-03-13T07:47:01.703 回答
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;
于 2014-03-09T08:48:29.960 回答