Foros del Web » Programando para Internet » PHP »

Recuperar archivos tipo Blop eb postgres con PHP

Estas en el tema de Recuperar archivos tipo Blop eb postgres con PHP en el foro de PHP en Foros del Web. Hola a todos espero puedan ayudarme, cree en una bd postgres una tabla para guardar imagenes y me las guarda bien pero cuando la quiero ...
  #1 (permalink)  
Antiguo 07/09/2005, 09:33
 
Fecha de Ingreso: agosto-2005
Mensajes: 6
Antigüedad: 12 años, 4 meses
Puntos: 0
Recuperar archivos tipo Blop eb postgres con PHP

Hola a todos espero puedan ayudarme, cree en una bd postgres una tabla para guardar imagenes y me las guarda bien pero cuando la quiero mostrar en pantalla me sale un recuadro con una x roja y la verdad no veo el error, porfavor si me pueden ayudar se les agradezco el codigo que estoy usando para mostrar las imagenes de la bd es el siguiente:

<?
# El parámetro f=1 indica que se va a forzar a bajar el archivo
$f=isset($_REQUEST['f'])?$_REQUEST['f']:0;
# Recupera el id pasado como parámetro
$id=isset($_REQUEST['id'])?$_REQUEST['id']:0;

# Conexión a la base de datos
include("conexion.php");
$vconexion=Conectarse();
# Recupera el archivo en base al ID
$sql = "select serial, nombre, descripcion, mime, size, coalesce(archivo_oid,-1) as archivo_oid
from foo where serial='$id'";
$result=pg_query($vconexion, $sql);
# Si no existe, redirecciona a la página principal
if(!$result || pg_num_rows($result)<1){
header("Location: subirfoto.php");
exit();
}
# Recupera los atributos del archivo
$row=pg_fetch_array($result,0);
pg_free_result($result);
# Para determinar si archivo a bajar fue ingresado al campo archivo_oid (es de tipo "oid")
$isoid=false;
//if($row['archivo_bytea']==-1) $isoid=true;
if($row['archivo_oid']==-1) $isoid=true;
if ($row['archivo_oid']==-1) die('No existe el archivo para mostrar o bajar');
if($isoid){
# Inicia la transacción
pg_query($vconexion, "begin");
# Abre el objeto blob
$file=pg_lo_open($vconexion, $row['archivo_oid'], "r");
}
else{
# Hace el proceso inverso a pg_escape_bytea, para que el archivo esté en su estado original
$file=pg_unescape_bytea($row['archivo_bytea']);
}
# Envío de cabeceras
header("Cache-control: private");
header("Content-type: $row[mime]");
if($f==1)
header("Content-Disposition: attachment; filename=\"$row[nombre]\"");
header("Content-length: $row[size]");
header("Expires: ".gmdate("D, d M Y H:i:s", mktime(date("H")+2, date("i"), date("s"), date("m"), date("d"), date("Y")))." GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

if($isoid){
# Imprime el contenido del objeto blob
pg_lo_read_all($file);

# Cierra el objeto
pg_lo_close($file);
# Compromete la transacción
pg_query($vconexion, "commit");
}
else{
# Imprime el contenido del archivo
print $file;
}
pg_close($vconexion);
?>
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 10:44.