Foros del Web » Programando para Internet » PHP »

Descarga de archivos desde MySQL

Estas en el tema de Descarga de archivos desde MySQL en el foro de PHP en Foros del Web. Saludos... He usado un manual bastante interesante para cargar cualquier tipo de archivo a una base de datos en MySQL y bajarlos desde la misma. ...
  #1 (permalink)  
Antiguo 09/11/2007, 02:20
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Descarga de archivos desde MySQL

Saludos...

He usado un manual bastante interesante para cargar cualquier tipo de archivo a una base de datos en MySQL y bajarlos desde la misma.

Subir los archivos no me ha representado ningún problema, incluso he verificado y la información se incluye en la misma BD. El problema se me presenta en la hora de bajar los archivos.

El código inicial es el siguiente:

Código PHP:
<?
if(isset($_GET['id']))
{
    include 
'library/config.php';
    include 
'library/opendb.php';

    
$id      $_GET['id'];
    
$query   "SELECT name, type, size, content FROM upload WHERE id = '$id'";
    
$result  mysql_query($query) or die('Error, query failed');
    list(
$name$type$size$content) = mysql_fetch_array($result);

    
header("Content-Disposition: attachment; filename=$name");
    
header("Content-length: $size");
    
header("Content-type: $type");
    echo 
$content;

    include 
'library/closedb.php';    
    exit;
}

?>
<html>
<head>
<title>Download File From MySQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
include 'library/config.php';
include 
'library/opendb.php';

$query  "SELECT id, name FROM upload";
$result mysql_query($query) or die('Error, query failed');
if(
mysql_num_rows($result) == 0)
{
    echo 
"Database is empty <br>";

else
{
    while(list(
$id$name) = mysql_fetch_array($result))
    {
?>
    <a href="bajar_archivo.php?id=<?=$id;?>"><?=$name;?></a> <br>
<?        
    
}
}
include 
'library/closedb.php';
?>
</body>
</html>
Con el código anterior me genera un error MySQL:

Cita:
Parse error: parse error, unexpected '=' in C:\Inetpub\vhosts\midominio.com\subdominio\misubdo minio\publichtml\bajar_archivo.php on line 212
La línea 212 la he cambiado por la siguiente:

Código PHP:
<a href="bajar_archivo.php?id=<? $id?>"><? $name?></a> <br>
Es decir, le he quitado los supuestos "=" inesperados. De esta manera puedo ver los archivos en MySQL pero no puedo bajarlos. Una vez le doy click a uno de ellos se abre una página con el vínculo del supuesto archivo pero esta no existe?....

Podrían echarme una mano?

Gracias.

Saludos!...
__________________
Andrew :P
  #2 (permalink)  
Antiguo 09/11/2007, 03:08
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: Descarga de archivos desde MySQL

Cambia <?= por <?php echo .
  #3 (permalink)  
Antiguo 09/11/2007, 03:36
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Re: Descarga de archivos desde MySQL

DarkJ,

Gracias por tu respuesta. He realizado el cambio que me aconsejas así:

Código PHP:
<a href="bajar_archivo.php?id=<?php echo $id?>"><?php echo $name?></a> <br>
Ahora puedo ver los archivos pero sigo sosteniendo el mismo problema, no puedo bajarlos. El vínculo que aparece en cada uno es el siguiente (en mi caso tengo cuatro archivos):

http://www.midominio.com/bajar_archivo.php?id=1
http://www.midominio.com/bajar_archivo.php?id=2
http://www.midominio.com/bajar_archivo.php?id=3
http://www.midominio.com/bajar_archivo.php?id=4

Pero una vez ejecuto el download (click sobre el vínculo), se abre una nueva página con el vínculo mencionado y el error 404 (Archivo no encontrado).

Qué pude ser si los veo en la BD de MySQL?
__________________
Andrew :P
  #4 (permalink)  
Antiguo 09/11/2007, 03:52
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: Descarga de archivos desde MySQL

¿Que servidor web y navegador web usas? Porque si son productos microsoft puede ser un tema de configuraciones. El IE siempre ha sido un dolor de cabeza para las descargas.
  #5 (permalink)  
Antiguo 09/11/2007, 04:20
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Re: Descarga de archivos desde MySQL

Gracias DarkJ,

De hecho he probado el script con Opera, Netsacape, IExplorer, Mozilla y Zafari. Todos me dan el mismo problema de error. Parece que no existiera el archivo en ninguna parte aunque lo pueda ver a través de phpmyadmin en mi servidor.

De otro lado tengo un servidor con windows, no con linux. Acaso debo cambiar el script para que funcione mejor del lado del servidor?

Gracias por tu ayuda.
__________________
Andrew :P
  #6 (permalink)  
Antiguo 09/11/2007, 05:33
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Descarga de archivos desde MySQL

Pero... está bien el nombre de archivo? Yo intento abrir http://www.internetmasters.com/bajar_archivo.php sin ningún ID y no me muestra la lista.
Además si tenés un error en tu código no debería producir un error 404 como lo está haciendo ahora...
  #7 (permalink)  
Antiguo 09/11/2007, 05:39
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Re: Descarga de archivos desde MySQL

Seppo, gracias por tu respuesta.

De hecho midominio.com es a titulo de ejemplo.

He seguido un tutorial a manera de subir archivos a la base de datos y no a ningún directorio. Cuando abro MySQL veo que efectovamente se han incluido esos archivos. El problema es que a través del link para bajarlos no me muestra la típica ventana para guardarlo o abrirlo y en cambio se abre una nueva ventana en el navegador con un error 404.

El tutorial seguido esta aquí.

Saludos y espero poder encontrar una ayuda en el tema.
__________________
Andrew :P
  #8 (permalink)  
Antiguo 09/11/2007, 05:42
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Descarga de archivos desde MySQL

Jajaj... que boludo... clickeé sin leer.

Igual insisto que no deberías tener un error 404 por este tema, sino que descargue un archivo vacío... El error 404 es sólo cuando no encuentra la página
  #9 (permalink)  
Antiguo 09/11/2007, 06:00
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Re: Descarga de archivos desde MySQL

Gracias Seppo... Quizá entonces mi pregunta se torne en: ¿Cómo puedo forzar una descarga de archivos incluidos en una base de datos MySQL?

Gracias por vuestra ayuda.
__________________
Andrew :P
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 07:47.