Получить изображение, хранящееся в базе данных Oracle, в виде lob через PHP

Я должен показать изображение, которое хранится в 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,

Заранее спасибо.

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

Я надеюсь, что когда-нибудь это кому-нибудь поможет. Кстати, спасибо всем за комментарии.:)

Поскольку вы используете OCI_RETURN_LOBS, у вас уже должен быть BLOB в $a в строке 3. Вы не получаете возвращаемый массив, попробуйте этот код:

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;
Другие вопросы по тегам