Доступ к изображению на HTTP-сервере с отдельного сервера БД-образа - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть база данных PostgreSql с несколькими полями OID.Данные в эти поля были вставлены с помощью команды lo_import .

Но я не могу сделать резервную копию базы данных и восстановить ее на другом сервере.Если я пытаюсь это сделать, все текстовые записи восстанавливаются, а поля OID имеют значение OID, но выполнение lo_export дает мне ошибку, как будто Файл не существует.

Чтонеужели я здесь не так делаю?


[Edit:] Хорошо, я обнаружил, что резервное копирование БД действительно работает, но у меня есть еще одна уникальная проблема.Мой сервер БД и мой HTTP-сервер находятся на разных машинах.Итак, теперь мой вопрос: как мне получить изображение на HTTP-сервере с сервера изображений?

Ответы [ 2 ]

0 голосов
/ 02 марта 2012

Вот фрагмент кода PHP, демонстрирующий, как передать изображение из большого объекта PostgreSQL в соединение HTTP:

  $db=pg_connect("dbname=mydb host=dbserver");
  pg_query("BEGIN");
  $p = pg_query("SELECT object_id, image_type FROM contents WHERE id=$some_id");
  list($oid,$type) = pg_fetch_row($p);
  $h=pg_lo_open($db, $oid, "r");
  if ($h) {
    header("Content-Type: $type");
    pg_lo_read_all($h);
    pg_lo_close($h);
  }
  pg_query("END");
0 голосов
/ 29 февраля 2012

Извините, что такое Io_import? Дамп баз данных Postgresql выполняется с помощью pg_dump, восстановление с помощью pg_restore или команды psql.

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