Foros del Web » Programando para Internet » PHP »

Forzar descarga de un archivo

Estas en el tema de Forzar descarga de un archivo en el foro de PHP en Foros del Web. Buenas, Tengo el siguiente código que crea un un archivo en un directorio del FTP. El archivo se crea bien, pero necesitaría que al mismo ...
  #1 (permalink)  
Antiguo 07/05/2011, 11:42
 
Fecha de Ingreso: marzo-2009
Mensajes: 71
Antigüedad: 15 años, 1 mes
Puntos: 0
Forzar descarga de un archivo

Buenas,

Tengo el siguiente código que crea un un archivo en un directorio del FTP. El archivo se crea bien, pero necesitaría que al mismo tiempo se forzara la descarga para descargarlo en local.

¿Como se haría esto?

Código PHP:
$fp fopen("atom/nombre_".$fecha1."-1.atom","w+"); 
       
flock($fp2); 
        
       if(!
$fp
       { 
       echo
"<p><strong>La conversion no ha podido ser procesada.</strong><p>"
       exit; 
       } 
       
fwrite($fp$stringsalida PHP_EOL);  
         
flock($fp3); 
       
fclose($fp);  
         
       echo
"<p>La conversion ha sido recibida y guardada</p>"
Un saludo.
  #2 (permalink)  
Antiguo 07/05/2011, 12:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Forzar descarga de un archivo

Para forzar una descarga solo es cuestión de usar unas cabeceras. Te recomiendo que busques así mismo en internet hay mucho material que te puede ayudar a cómo forzar una descarga con PHP.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 07/05/2011, 19:48
 
Fecha de Ingreso: marzo-2009
Mensajes: 71
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Forzar descarga de un archivo

Buenas,

He estado buscando información y con estas caberas consigo forzar la descarga de un archivo que ya esté guardado...


Código PHP:
header("Content-type: image/jpg");  
header('Content-Disposition: attachment; filename="imgprueba.gif"');  
readfile('../convertir/atom/imgprueba.gif'); 

...pero de momento sigo sin conseguirlo, necesitaría forzar la descarga del archivo que está creando el código en el mismo instante que lo crea y guarda en el servidor.

Cada vez que se ejecuta el código crea un archivo diferente, y necesitaría que al mismo tiempo que se crea, se lance la descarga.

Si fuera posible alguna pista más...de todos modos continúo intentándolo.
Gracias, un saludo.

Última edición por naked; 07/05/2011 a las 19:53
  #4 (permalink)  
Antiguo 14/05/2011, 12:39
 
Fecha de Ingreso: marzo-2009
Mensajes: 71
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Forzar descarga de un archivo

Nada no consigo hacerlo.

El caso es que necesitaría que desde el mismo código...

Código PHP:
$fp fopen("atom/nombre_".$fecha1."-1.atom","w+");  
       
flock($fp2);  
         
       if(!
$fp)  
       {  
       echo
"<p><strong>La conversion no ha podido ser procesada.</strong><p>";  
       exit;  
       }  
       
fwrite($fp$stringsalida PHP_EOL);   
         
flock($fp3);  
       
fclose($fp);   
          
       echo
"<p>La conversion ha sido recibida y guardada</p>"

... se cree el archivo y se lance la descarga. Al crearse el archivo se le da un nombre, y como ese nombre se crea en ese instante con...

Código PHP:
$fecha1=date('Y-m-d'); 
...no alcanzo a saber como debería ser la ruta desde donde se descargará...

Código PHP:
readfile(../convertir/atom
Si alguien tuviera alguna pista de la que pudiera tirar y seguir buscando información de como hacerlo, sería de una gran ayuda porque ando perdidísimo.
Gracias, un saludo.
  #5 (permalink)  
Antiguo 15/05/2011, 07:45
 
Fecha de Ingreso: marzo-2009
Mensajes: 71
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Forzar descarga de un archivo

Nada sigue sin funcionarme. Esto es lo que he hecho:

Código PHP:
$ruta "../convertir/atom/nombre_".date('Y-m-d')."-".date (His).".atom";
     
$fp fopen($ruta"w+"); 
     
fwrite($fp$salidaxml); 
     
flock($fp3);
         
fclose($fp); 
   

  
$nombredescarga="nombre_".date('Y-m-d')."-".date (His).".atom";
  
header("Content-type: application/atom+xml");  
  
header('Content-Disposition: attachment; filename="'.$nombredescarga.'"');  
  
readfile("../convertir/atom/nombre_".date('Y-m-d')."-".date (His).".atom");
  
header('Location:'.$ruta); 
Siendo el archivo que el indico igual que el se crea, ¿debería lanzar la descarga no?
Un saludo.

Etiquetas: descarga
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 11:10.