Получить изображение, хранящееся в базе данных 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;