Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/01/2010, 14:54
sesebas
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Descargar archivos desde el servidor con botón "guardar"

Gracias por responder de tan buena y dedicada manera Paynalton. Trabajé bastante para hacer funcionar el código que me proporcionaste, pero lamentablemente no he podido conseguir el resultado esperado. Cuento lo que he hecho con la idea de obtener un poco más de ayuda, porque no consigo dar con la manera de hacer lo que necesito:

1.- En primer lugar cambié el archivo php de destino que me propones (recibe.php) por (download.php)

Código Javascript:
Ver original
  1. location.href=".../download.php?archivo="+archivos[indiceActual];//llamamos a la descarga en turno

El código que puse en "download.php" es el siguiente:

Código PHP:
Ver original
  1. <?php
  2.  
  3. if (!isset($_GET['archivo']) || empty($_GET['archivo'])) {
  4.     exit();
  5. }
  6.  
  7. $root = ".../ExcelFiles/";
  8. $archivo = basename($_GET['archivo']);
  9. $path = $root.$archivo;
  10.                                                                                                                                                    
  11. $type = '';                                                              
  12.     $type = "application/force-download";                                
  13.                                                                          
  14.                                                                          
  15.     header("Content-Type: $type");                                        
  16.     header("Content-Disposition: attachment; filename=$archivo");        
  17.     header("Content-Transfer-Encoding: binary");                          
  18.     header("Content-Length: " . $size);                                  
  19.                                                                          
  20.  
  21.  
  22.                                                                          
  23.     readfile($path);                                                      
  24.                                                                          
  25. ?>

2.- Revisando la aplicación con FireFox y usando FireBug, puedo ver que todo marcha bien hasta llegar a la línea:

Código Javascript:
Ver original
  1. descargame=function()//definimos la función que se encargará de ...

pero nunca entra a evaluar la condición puesta a continuación y termina lléndose directamente a la línea:

Código Javascript:
Ver original
  1. downloader=setInterval(descargame,1000);// aqui definimos el intervalo

3.- Escribí la funcion "descargame" separada de "TestFunction", pero la llamo desde aquí con "descargarme ()" De esta manera sí puedo entrar a la función, pero nunca se cumple la condición del "if" de manera que tampoco consigo hacer nada.

Código Javascript:
Ver original
  1. <script language="JavaScript" type="text/JavaScript">
  2.  
  3.            function descargame()//definimos la función que se encargará de llamar a las descargas.
  4.                   {
  5.                   if(archivos[indiceActual])
  6.                          {
  7.                           location.href=".../download.php?archivo="+archivos[indiceActual];//llamamos a la descarga en turno
  8.                          }
  9.                   else
  10.                          {
  11.                         indiceActual=1;
  12.                         archivos=new Array();
  13.                         clearInterval(downloader);//una vez que se han descargado todos, eliminamos el intervalo y limpiamos las variables
  14.                         }
  15.                   }
  16.            downloader=setInterval(descargame,1000);// aqui definimos el intervalo con un espacio de 1 segundo entre una descarga y otra.
  17.          
  18.  
  19.  
  20. </script>

Ojalá me puedan ayudar un poco más, porque solo no consigo hacer lo que necesito. Gracias por todo