Foros del Web » Programando para Internet » PHP »

Fotos

Estas en el tema de Fotos en el foro de PHP en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 19/09/2010, 16:43
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Fotos

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");
}
  #2 (permalink)  
Antiguo 24/09/2010, 13:51
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Fotos

Antes de seguir depurando tu código tienes que centrarte en

Código PHP:
[function.pg-loopen]: Unable to open PostgreSQL large object 
En principio, si en la primera lectura va bien y la segunda no, es porque los datos que se copian se copian mal. También deberías comprobar timeout en la conexión ay que [pg-loopen] maneja grandes cantidades de información.
Intenta con imágenes pequeñas a ver qué pasa. Salu2
  #3 (permalink)  
Antiguo 28/09/2010, 19:32
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Fotos

Amigo gracias por contestar,

hice una prueba directamente copiando y restaurando la tbla desde postgres y me da el mismo error no pareciera error en la copia de los datos.

Que opinas ??????
  #4 (permalink)  
Antiguo 01/10/2010, 05:02
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Fotos

Perdón por la demora, pensé que ya estaba cerrado este tema.
Si aún no lo has resuelto habría que ver los valores que devuelve el fetch_object, algo así:

Código PHP:
echo $nombre $row->nomb_imagen;
        echo 
$archivo_oid $row->archivo_oid;
        echo 
$tamano $row->mime;
        echo 
$tipo_mime $row->size
A continuación, intenta mostrar la imagen desde una etiqueta img directamente.
Si puedes postea los resultados, saludos
  #5 (permalink)  
Antiguo 01/10/2010, 09:54
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Fotos

Que bueno que contestaste, lo que pasa es que estoy full trabajo y hago las pruebas cuando puedo, porque tengo mil cosas que tambien son inmediatas.

Voy a probar lo que me recomiendas y te aviso

Gracias por la colaboración igualmente mis saludos y agradecimiento.

Etiquetas: fotos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:41.