Foros del Web » Programando para Internet » PHP »

Descargar Archivo

Estas en el tema de Descargar Archivo en el foro de PHP en Foros del Web. Hola a todos, la verda que no encuentroi la solucioion, tengo un formulario en donde pongo als noticias y cada noticia puede o no tener ...
  #1 (permalink)  
Antiguo 17/03/2007, 09:40
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 0
Exclamación Descargar Archivo

Hola a todos, la verda que no encuentroi la solucioion, tengo un formulario en donde pongo als noticias y cada noticia puede o no tener un archivo para descargar, tengo un tabla de la bd noticas y otra en donde tengo el nombre de cada archivo que esta en un web server adjuntado, paso el còdigo de como lo hago, lo que me pasa es que al hecer click en el archivo me abre la ventana del web server (explorardor de windows) y no me da la opcion para guardar el archivo.

Aca pongo el nombre del archivo y lo referencio a web server o en este caso unidad de red.


<td><div align="center"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif"><a href="z:/"$row_prestamo['file']""$row_prestamo['file']""><?php echo $row_prestamo['file']; "Content-type: application/force-download"; ?></a></font></div></td>


Espero una ayudita.

Saludos.
  #2 (permalink)  
Antiguo 17/03/2007, 09:44
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Descargar Archivo

Hola beququi!!

Mira,para descargar archivos yo lo que hago es:

Código PHP:
<?php
    $files_folder 
"ruta";

    
$size $files_folder;
    if (
detect_browser($HTTP_USER_AGENT) == "ie")
    {
        
Header("Content-type: application/force-download");
    }else{
        
Header("Content-Type: application/octet-stream");
    }
        
Header("Content-Length: ".filesize($size));
        
Header("Content-Disposition: attachment; filename=nombre.extension");
        
readfile($size); 
#########################################################################


function detect_browser($var)
{
        if(
eregi("(msie) ([0-9]{1,2}.[0-9]{1,3})"$var)) 
        {
            
$c "ie"
        }else{
            
$c "nn"
        }
    return 
$c;
}
?>
Espero que te sirva!!
  #3 (permalink)  
Antiguo 17/03/2007, 17:13
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 0
Exclamación Re: Descargar Archivo

EL nombre del archivo lo saco de una consulta sql, lo que me pasaste lo aplico asì pero no me muestra el nombre en la noticia.

<td><div align="center"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif"><a href="<?php "$files_folder = z;/" ?> <?PHP echo $row_prestamo['file'];

$size = $files_folder;


Header("Content-Length: ".filesize($size));
Header("Content-Disposition: attachment; filename=nombre.extension");
readfile($size);
?>"></a></font></div></td>



<?PHP echo $row_prestamo['file'];
Es el nombre del archivo que saco de la consulta.

No se que pasa.
Gracias.
  #4 (permalink)  
Antiguo 18/03/2007, 16:52
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Descargar Archivo

Me parece que en el enlace no vas a poder hacer eso. Yo que tú probaría con esto:

Cita:
<td><div align="center">
<font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif">
<a href="descarga.php"> <?PHP echo $row_prestamo['file'];?></a>
</font>
</div>
</td>
Código PHP:
<?php 
$files_folder 
"z:/";
$size $files_folder;

Header("Content-Length: ".filesize($size));
Header("Content-Disposition: attachment; filename=nombre.extension");
readfile($size);
....
?>
Ten cuidado, que donde ponías la ruta, tenías puesto z; y no z:

Si esto no te funciona cuéntanos.
  #5 (permalink)  
Antiguo 18/03/2007, 18:11
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 0
Exclamación Re: Descargar Archivo

Me da estos errores, el editor que uso es dreamweaber, perdon las molestias pero estoy aprendiendo php.

Código HTML:
Warning: filesize() [function.filesize]: stat failed for z:/ in D:\Nacho\Laboratorio 2\www\sabweb\descarga.php on line 11


Warning: Cannot modify header information - headers already sent by (output started at D:\Nacho\Laboratorio 2\www\sabweb\descarga.php:7) in D:\Nacho\Laboratorio 2\www\sabweb\descarga.php on line 12

Warning: readfile(z:/) [function.readfile]: failed to open stream: No such file or directory in D:\Nacho\Laboratorio 2\www\sabweb\descarga.php on line 13
Saludos.
  #6 (permalink)  
Antiguo 19/03/2007, 13:42
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Descargar Archivo

Z:/ Supongo que sea el directorio, prueba a poner Z:\ (con la otra barra) o poner otra ruta.....

El 2º error que te da, es porque intentas escribir algo en ese script.
  #7 (permalink)  
Antiguo 20/03/2007, 14:49
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 0
Exclamación Re: Descargar Archivo

Me parece que va, pero no me toma el nombre del archivo en la pagina donde tengo las notas llamo a la pagina descarga.php pero no me toma el paràmetro
Código PHP:
 <?php $archivo $row_prestamo['file'];?>
        <td><div align="center"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif"><a href="descarga.php.$archivo"><?PHP echo $row_prestamo['file'];?></a></font></div></td>
y en la página descarga.php tengo que tomar el nombre del archivo, còmo hago para pasar el pàrametro y tomarlo desde la págna destino?
Código PHP:
<?php  
$files_folder 
"D:/Nacho/Laboratorio 2/www/sabweb/b"
$size $files_folder."/".$archivo
$id=$archivo;
Saludos
  #8 (permalink)  
Antiguo 20/03/2007, 15:33
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Descargar Archivo

A ver, en el enlace a la página destino tienes un error:

Código PHP:
<?php $archivo $row_prestamo['file'];?>
<td><div align="center"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif"><a href='descarga.php?".$archivo."'><?PHP echo $row_prestamo['file'];?></a></font></div></td>
Y en el fichero destino para obtenerlo:

Código PHP:
$archivo $_GET ['archivo']; 
Espero que esto te valga !!
  #9 (permalink)  
Antiguo 20/03/2007, 17:27
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 0
Exclamación Re: Descargar Archivo

Me da descargar la opcion para bajar descarga.php, en la pagina origen porngo esto

Código PHP:
 <?php $file_a $row_prestamo['file'];?>
        <td><div align="center"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif"><a href='descarga.php?".$file_a."'><?PHP echo $row_prestamo['file'];?></a></font></div></td>
y en la página destino pongo

Código PHP:
$archivo $_GET ['file_a'];  
$files_folder "D:/Nacho/Laboratorio 2/www/sabweb/b"
$size $files_folder."/".$archivo
No veo el error, probe poniendo en la variable archivo de la página descarga.php el nombre de algún archivo que exista en el servisor y me da la opcion para descargarlo.

SAludos.
  #10 (permalink)  
Antiguo 21/03/2007, 03:50
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Descargar Archivo

Imprime $size a ver si te escribe lo que debería ser. Comprueba que el archivo está en ese directorio. (con extensión y todo).

De todos modos, en el destino, sólo pones ese código?? Yo te puse más cosas en el script...

A mi tb me ha descargado a veces descarga.php pero no me acuerdo bien que me pasaba...
  #11 (permalink)  
Antiguo 21/03/2007, 16:18
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 0
Exclamación Re: Descargar Archivo

Si eimprimo la variable que paso en la página de noticias tengo el archivo de la base me da el archivo con extension, pero no me descarga el archivo, si me descarga el archivo descarga.php

Te paso lo que tengo en la pagina de las noticias.

Código PHP:
 <?php $file_a $row_prestamo['file'];?>
        <td><div align="center"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif"><a href='descarga.php?".$file_a."'><?PHP echo $row_prestamo['file'];?></a></font></div></td>
en descarga.php

Código PHP:
<?php  
$archivo 
$_GET ['file_a'];  
$files_folder "D:/Nacho/Laboratorio 2/www/sabweb/b"
$size $files_folder."/".$archivo
Header("Content-Disposition: attachment; filename=".$archivo."\n\n"); 
Header("Content-Type: application/octet-stream");
Header("Content-Length: ".filesize($size));
readfile($size); 
?>
Saludos.
Gracias.
  #12 (permalink)  
Antiguo 22/03/2007, 06:56
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Descargar Archivo

A ver, antes de readfile(), pon esto:

Cita:
Header("Content-Disposition: attachment; filename=nombre que quieras que se descargue.extension");
Con esto te debería de funcionar....
  #13 (permalink)  
Antiguo 22/03/2007, 06:59
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Descargar Archivo

Mira a mi me pasa eso, si el directorio que pongo no existe. Prueba a imprimir, $size después de guardarlo, me da que no te está cogiendo bien el nombre del archivo.... Dime que es lo que te escribe.
  #14 (permalink)  
Antiguo 22/03/2007, 16:03
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 0
Exclamación Re: Descargar Archivo

Si me parece que no me toma bien el nombre del archivo.
este es el error

Código HTML:
<br />
<b>Warning</b>:  readfile(D:/Nacho/Laboratorio 2/www/sabweb/b/) [<a href='function.readfile'>function.readfile</a>]: failed to open stream: Permission denied in <b>D:\Nacho\Laboratorio 2\www\sabweb\descarga.php</b> on line <b>13</b><br /> 
en descarga.php solo tengo este código nada de html solo código php

Código PHP:
<?php  
$archivo 
$_GET ['file_a'];  
$files_folder "D:/Nacho/Laboratorio 2/www/sabweb/b"
$size $files_folder."/".$archivo
//$id=$archivo;
//Header("Content-Length: ".filesize($size))
//Header("Content-Disposition: attachment; filename=".$archivo."\n\n"); 
Header("Content-Type: application/octet-stream");
Header("Content-Length: ".filesize($size));
Header("Content-Disposition: attachment; filename=a.txt"); 

//Header("Content-Disposition: attachment; filename=$size"); 
readfile($size); 
?>
  #15 (permalink)  
Antiguo 22/03/2007, 16:34
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Descargar Archivo

A ver, cuando llamas a descarga.php no lo haces bien, pq no te está cogiendo el código php.

Intenta esto


Código PHP:
<?php $file_a $row_prestamo['file'];
    echo 
"<td><div align='center'><font color='#FF0000' size='2' face='Arial, Helvetica, sans-serif'><a href=descarga.php?".$file_a.">".$row_prestamo['file']."</a></font></div></td>";
?>
Tú estabas poniendo una variable php en html, sin abrir etiquetas php ni nada...
  #16 (permalink)  
Antiguo 22/03/2007, 17:25
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Descargar Archivo

Si en descarga.php la variable le pongo el nombre de un archivo que existe me lo descarga perfectamente pero no me toma la variable en descarga.php,
se pasa asì la variable.

Código PHP:
        <?php $file_a $row_prestamo['file']; 
    echo 
"<td><div align='center'><font color='#FF0000' size='2' face='Arial, Helvetica, sans-serif'><a href=descarga.php?".$file_a.">".$row_prestamo['file']."</a></font></div></td>"
?
  #17 (permalink)  
Antiguo 23/03/2007, 17:02
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Descargar Archivo

Alguien que pueda ayudarme?
  #18 (permalink)  
Antiguo 23/03/2007, 21:24
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 0
De acuerdo Descargar Archivo

Hola a todos, la verda que no encuentroi la solucioion, tengo un formulario en donde pongo als noticias y cada noticia puede o no tener un archivo para descargar, tengo un tabla de la bd noticas y otra en donde tengo el nombre de cada archivo que esta en un web server adjuntado, paso el còdigo de como lo hago, lo que me pasa es que al hecer click en el archivo me abre la ventana del web server (explorardor de windows) y no me da la opcion para guardar el archivo.

Aca pongo el nombre del archivo y lo referencio a web server o en este caso unidad de red.

<?php $file_a = $row_prestamo['file'];
echo "<td><div align='center'><font color='#FF0000' size='2' face='Arial, Helvetica, sans-serif'><a href=descarga.php?".$file_a.">".$row_prestamo['file']."</a></font></div></td>";
?>

y en descarga.php

<?php
$archivo = $_GET ['file_a'];
$files_folder = "D:/Nacho/Laboratorio 2/www/sabweb/b";
$size = $files_folder."/".$archivo;
//$id=$archivo;
//Header("Content-Length: ".filesize($size))
//Header("Content-Disposition: attachment; filename=".$archivo."\n\n");
Header("Content-Type: application/octet-stream");
Header("Content-Length: ".filesize($size));
Header("Content-Disposition: attachment; filename=a.txt");

//Header("Content-Disposition: attachment; filename=$size");
readfile($size);
?>
  #19 (permalink)  
Antiguo 24/03/2007, 09:34
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Descargar Archivo

Hola a todos y sobretodo Vane,encontre la solucion para que me tome el nombre del archivo

Código PHP:
        <td><div align="center"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif"><a href="descarga.php?file_a=<?php echo $row_prestamo['file'];?>"><?PHP echo $row_prestamo['file'];?></a></font></div></td>
Pero cuando lo descargo me decarga con 0 KB de tamaño. Saben porque?

Código PHP:
<?php  
$archivo 
$_GET['file_a'];  
//$a = "a.doc";
$files_folder "D:/Nacho/Laboratorio 2/www/sabweb/b/".$archivo
//$size = $files_folder.$archivo; 
//$id=$archivo;
Header("Content-Length: ".filesize($files_folder));
Header("Content-Disposition: attachment; filename=".$archivo."\n\n"); 
Header("Content-Type: application/octet-stream");
//Header("Content-Disposition: attachment; filename=a.txt"); 
//Header("Content-Disposition: attachment; filename=$archivo"); 
readfile($size); 
?>
  #20 (permalink)  
Antiguo 24/03/2007, 09:43
Avatar de fer10  
Fecha de Ingreso: octubre-2005
Ubicación: Guadalajara - Mexico
Mensajes: 905
Antigüedad: 18 años, 6 meses
Puntos: 4
Re: Descargar Archivo

yo tambien tenia el mismo probelma con los archvos MP3 los abria ya sea con quicktime o con wmp, pero recuerdo aberlo solucionado y creo que encontre la respuesta aqui en FW en este momento no tengo el script pero si recuerdo que eran con headers.. para el lunes te la consigo, si es que no lo has solucionado hasta el momento busca en FW tal vez en google como "forzar descarga php"

saludos! estas cercas =)
__________________
Saludos
FT.
www.fernando.com.mx
  #21 (permalink)  
Antiguo 25/03/2007, 13:21
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Descargar Archivo

A ver, creo que nos estamos confundiendo.... El archivo que tengas en este directorio debe existir: ""D:/Nacho/Laboratorio 2/www/sabweb/b/".$archivo;" Este es el directorio del archivo en el servidor, y tú quieres descargártelo a tu pc, y ésto lo indicas con ésto otro: "Header("Content-Disposition: attachment; filename=grafica.jpg");"

Espero que esto ahora te valga...
  #22 (permalink)  
Antiguo 28/03/2007, 08:28
 
Fecha de Ingreso: marzo-2007
Mensajes: 1
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Descargar Archivo

Haber como les va con algo como esto:

el archivo que tengo es un txt, pero como es muy grande lo comprimo con gzip y luego si lo descargo, espero les sirva.

/////////////

$file="/srv/www/htdocs/mi_aplicacion/files/datos.txt";
@unlink($file);

$sql="select * from tabla into outfile '$file';";
mysql_query($sql);

system('gzip -9 '.$file);

$filename = "datos.txt.gz";
$size = filesize($file);

header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");
header("Content-Transfer-Encoding: base32");
header("Content-type: application/force-download");
header("Content-type: application/x-gzip");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Length: $size");

@readfile("$file");
exit();
////////////
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 08:07.