Получить изображение из базы данных postgres с помощью PHP - PullRequest
0 голосов
/ 08 февраля 2010

Я работаю в PHP с Postgresql в качестве бэкэнда. База данных уже разработана другими. Теперь я хочу получить изображение из базы данных, используя PHP. Но я не могу получить изображение из базы данных. Я использовал этот код для получения изображения, но он показывает только нечитаемые символы на веб-странице. Иногда это показывает маленькую иконку (например, когда мы получаем какое-либо изображение не присутствует на веб-странице), но в основном это показывает пустую страницу. Тип данных для хранения изображений - «bytea». Код, который я использую для отображения изображения, выглядит следующим образом:

$conn = pg_connect("user=xxxx password=xxxx dbname=xxxx host=xxxx");
$res = pg_query($conn, "SELECT scan_image FROM t1scandoc where image_srno='1'");
while(pg_fetch_array($res))
{
  if (pg_result($res,2))
  {
    WriteImageToFile(pg_result($res,0),$dir.pg_result($res,1),pg_result($res,2));
  }
}

1 Ответ

1 голос
/ 08 февраля 2010

Вы не читаете ваше свойство результата.

  1. pg_result() не является функцией, определенной расширением PostgreSQL.
  2. Вы не сохраняете возвращаемое значение pg_fetch_array() в переменной.

Следующий код должен вывести значение scan_image в браузер.

$conn = pg_connect("user=xxxx password=xxxx dbname=xxxx host=xxxx");
$res = pg_query($conn, "SELECT scan_image FROM t1scandoc where image_srno='1'");
if($row = pg_fetch_array($res)) // Output only one row, we can't output multiple
{
  echo $row['scan_image'];
}

К сожалению, я не знаю формат файла вашего scan_image. Не забудьте прислать соответствующие заголовки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...