Jump to content


Photo

Problemas con headers


  • Please log in to reply
4 replies to this topic

#1 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 posts
  • LocationMéxico D.F.

Posted 21 March 2013 - 12:54 PM

Saludos amigos, de antemano gracias por atender este post, tengo el siguiente problema, estoy tratando de bajar archivos de un sitio, estos archivos los listo en un "form" con checkboxs, esto con el fin de que el usuario seleccione los archivos y los que estén marcados los mando a otro archivo php para descargarlos.

Al momento de pasara del form al php verifico y si envía bien el array de archivos a descargar, el problema es cuando uso la función para descargar que tengo, y es que usa "headers" y quiero ver si es por eso que sólo me descarga el primer archivo del arrary, luego no hace nada ni error ni nada, este es mi código para descargar:





<?php

$areglo=$_GET['mifiles'];

function descargar_archivo($ruta){
$size = $_SERVER["DOCUMENT_ROOT"].$ruta;

if (file_exists($size)){
$type="application/force-download";

header("Content-Type: $type");
header("Content-Disposition: attachment; filename=".basename($ruta));
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$bites);
// Descargar archivo
readfile($size);

                //si comentarreo los headers y pongo esta linea me muestra bien los "n" archivos del array
//echo "Tipo: ".$type."<br>file: ".basename($ruta)."<br>Size: ".$bites."<br>busca: ".$size."<br>Ruta: ".$ruta."<br>Terminado.....................<br><br>";
}
}


foreach($_GET['mifiles'] as $chekado){
  descargar_archivo($chekado);
}

?>


alguna sugerencia o algo que no estoy tomando en cuenta, saludos y gracias.
  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4945 posts
  • LocationMéxico

Posted 21 March 2013 - 01:04 PM

el header aplica solo para un archivo amigo. si requieres descargar varios podrías comprimirlos y descargar el comprimido....
  • 0

#3 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 posts
  • LocationMéxico D.F.

Posted 21 March 2013 - 01:08 PM

el header aplica solo para un archivo amigo. si requieres descargar varios podrías comprimirlos y descargar el comprimido....


gracias por contestar pronto, si efectivamente considere esa opción, pero el usuario a fuerza quiere descargarlos de manera separada, es decir uno por uno, habrá alguna forma de hacerlo o reiniciar los headers?
  • 0

#4 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 posts
  • LocationMy House @ México

Posted 26 March 2013 - 03:18 PM

O envialo a una pagina que te genere los vinculos y se muestren los archivos que el quiera descargar, para que se ocupe de hacer clic derecho y escoger guardar como.

o utilizar la función move_upload_file, para mover los archivos necesarios a una carpeta donde el pueda descargarlos. Generar varios headers pues no le veo mucho caso, forzar la descarga siempres sera para solo 1 archivo, despues del segundo los antivirus lo pueden detectar como un ataque.
  • 0

#5 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4945 posts
  • LocationMéxico

Posted 27 March 2013 - 08:30 AM

Se me ocurre también la posibilidad de genera un archivo compriomido que contenga todos los archivos. así sería solo una descarga. Podrías crear un proceso en php que comprima y envie  el archivo.
  • 0




IP.Board spam blocked by CleanTalk.