Hola amigos
Tengo una aplicación donde selecciono de una carpeta una foto y la guardo en una tabla postgres con la siguiente estructura:
id_necesidad integer,
cod_imagen integer,
nomb_imagen varchar(100),
archivo_oid oid,
mime varchar(100),
size integer
Aca puedo consultar la fotos sin problema.
luego por un proceso de selección copio el registro en otra tabla postgres con la misma estructura, la copia la realiza bien los mismos datos.
ya aca no puedo consultar las fotos me envía el error
[function.pg-loopen]: Unable to open PostgreSQL large object
a continuacion el código, que funciona en el primer caso para la consulta pero no en el segundo caso:
include '../../ConexionMunicipal.php';
$cod_imagen = $_GET['cod_imagen'];
if (isset($_GET['cod_imagen']))
{
$sql = "SELECT * FROM nefotos WHERE cod_imagen='".$_GET['cod_imagen']."'";
$consulta = pg_exec($conexion,$sql);
if (pg_numrows($consulta) > 0 )
{
$row = pg_fetch_object($consulta);
$nombre = $row->nomb_imagen;
$archivo_oid = $row->archivo_oid;
$tamano = $row->mime;
$tipo_mime = $row->size;
pg_exec($conexion,"BEGIN TRANSACTION");
$campo_blob = pg_loopen($conexion,$archivo_oid,"r");
// Creamos las cabeceras para ver el archivo
header("Content-type: $tipo_mime");
header("Pragma: no-cache");
pg_loreadall($campo_blob);
pg_loclose($campo_blob);
pg_exec($conexion,"COMMIT TRANSACTION");
pg_exec($conexion,"END TRANSACTION");
}