Foros del Web » Programando para Internet » PHP »

descargar archivo desde base de datos

Estas en el tema de descargar archivo desde base de datos en el foro de PHP en Foros del Web. Tengo una base de datos en la que tengo registros que incluyen un archivo pdf por registro. nombre, dirección, notas, fotografía y archivopdf. mi pregunta ...
  #1 (permalink)  
Antiguo 13/10/2005, 09:25
 
Fecha de Ingreso: octubre-2004
Mensajes: 79
Antigüedad: 19 años, 6 meses
Puntos: 0
descargar archivo desde base de datos

Tengo una base de datos en la que tengo registros que incluyen un archivo pdf por registro. nombre, dirección, notas, fotografía y archivopdf.

mi pregunta es: como hago la consulta desde php para que al pulsar en un vinculo me descargue el archivo pdf guardado en una base de datos mysql.?

gracias
  #2 (permalink)  
Antiguo 13/10/2005, 09:27
 
Fecha de Ingreso: octubre-2004
Mensajes: 79
Antigüedad: 19 años, 6 meses
Puntos: 0
Exclamación descargar archivo desde base de datos

Tengo una base de datos en la que tengo registros que incluyen un archivo pdf por registro. nombre, dirección, notas, fotografía y archivopdf.

mi pregunta es: como hago la consulta desde php para que al pulsar en un vinculo me descargue el archivo pdf guardado en una base de datos mysql.?

gracias
  #3 (permalink)  
Antiguo 13/10/2005, 09:39
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 1 mes
Puntos: 0
primero, no necesitas postear tantas veces, no somos tontos.

segundo referente a tu pregunta , depende, tienes guardado en tu BD la direccion donde esta el archivo (ej: files/pdf/tuarchivo.pdf) o tienes el archivo en si en tu BD con Blob (asi era?).

saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #4 (permalink)  
Antiguo 13/10/2005, 09:42
Avatar de c4r1o5  
Fecha de Ingreso: febrero-2005
Mensajes: 81
Antigüedad: 19 años, 1 mes
Puntos: 1
Este codigo te servirá, necesitas la variable que contiene el identificador del archivo y pasarla por medio del link. Nótese que yo lo hago con interbase, pero lo unico que tendrías que hacer es cambiar las funciones ibase por sus correspondientes en MySQL.

Código PHP:
// Se conecta a la base de datos
 
$dbh=conectar();
 
 
// Establece la consulta
 
$query="SELECT file_pointer,nombre,tipo FROM ARCHIVOS WHERE id_file=".$_REQUEST['ident'];
 
 
// Se realiza la consulta
 
$result=ibase_query($dbh,$query);
 
 
// Valida si la consulta fue exitosa
 
if (!$result) { echo "No se puede realizar la consulta"; }
 else {
         
         
// Se crea una variable que obtiene la tupla obtenida
         
$data=ibase_fetch_row($result);
         
         
// Se obtiene la longitud del blob
         
$blob_data=ibase_blob_info($data[0]);
         
         
// Se crea un manejador para el apuntador del blob
         
$blob_hndl=ibase_blob_open($data[0]);
         
         
// Se obtiene el contenido del blob
         
$archivo=ibase_blob_get($blob_hndl,$blob_data[0]);
         
         
// Se cierra el blob
         
ibase_blob_close($blob_hndl);
         
$tipo=$data[2];
         
$nombre_arch=$data[1];
         
        
// Si se mantiene la sentencia "attachment" se forza la descarga     
         // del archivo, de otro modo, si es un MIME conocido, el navegador 
         // interpreta el archivo      
         
header("Content-Disposition: attachment; filename=\"$nombre_arch\"");
         
header("Content-type: $tipo");
         
header("Content-Length: $blob_data[0]");
         
        
// Se manda el codigo binario del blob al navegador
         
echo $archivo;
 }
 
// Se desconecta de la base de datos
 
desconecta();
 
?> 
__________________
¿Que importa el resto?, el resto es simplemente la humanidad, hay que ser superior a humanidad, por fuerza, por altura de alma, por desprecio ...
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 00:50.