Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Kase en 27 Julio 2012, 23:20 pm



Título: mandar a descargar varios archivos con javascript..
Publicado por: Kase en 27 Julio 2012, 23:20 pm
necesito que al pulsar un link se mande a descargar un archivo tras otro  (osea una lista de archivos)
son informes de proyectos.. cada uno con una  url:  mipagina.com/descarga/proyecto/id/nombre.odt 

no quisiera mandar todo en un solo documento, auque tengo forma de hacerlo.. y tampoco quiero que el usuario tenga que cliquear un por uno (auque ya es posible).. el problema es que si quiere todos  podrian llegar a ser mas de 100 archivos.. y tirarle una instruccion  wget no es opcion.. (aunque tambien se las tiro xD)


Título: Re: mandar a descargar varios archivos con javascript..
Publicado por: #!drvy en 28 Julio 2012, 01:47 am
He estado haciendo algunas pruebas con jQuery.. lo he probado solo en Firefox y Chrome pero no creo que de problemas en otros navegadores.

La idea es tener un iframe en el cual abrir el archivo (dirección) y mediante un timer (interval) ir cambiado el src de este.

Te dejo el codigo comentado mas o menos aunque es facil de entender =)

Código
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>DescargaMultiple</title>
  5. <script lang="javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
  6. <script>
  7. $(document).ready(function() {
  8.  $('#download').click(function(event){
  9.    // Prevenir que el browser siga el enlace
  10.    event.preventDefault();
  11.    // Lista de archivos
  12.    var archivos = ["1.zip", "2.zip", "3.zip"];
  13.    // Empezamos por 0 en el array
  14.    var aIndex = 0;
  15.    // Iniciamos un timer que se ejecute cada 100ms
  16.    var Ainterval = setInterval(function(){
  17.      // Si el numero del index(array) es menor seguir
  18.      if(aIndex < archivos.length){
  19.        // Indicar el src al iframe
  20.        $('#downloader').attr('src',archivos[aIndex]);
  21.        // Subir el index(array)
  22.        aIndex++;
  23.      // En caso de que sea mayor, limpiar timer.
  24.      } else {clearInterval(Ainterval);}
  25.    }, 100);
  26.  });
  27. });
  28. </script>
  29. </head>
  30. <body>
  31.   <a href="" id="download">Descargar archivos</a>
  32.   <iframe id="downloader" src="" style="display:none;"></iframe>
  33. </body>
  34. </html>

Saludos


Título: Re: mandar a descargar varios archivos con javascript..
Publicado por: Kase en 28 Julio 2012, 02:06 am
horale!!!  muchisimas gracias...  me conformaba con  conocer alguna instruccion para mandar a descargar.. y te as echo todo el script. :P te debo una