elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  como forzar la descarga de ficheros de extensiones multiples con PHP?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como forzar la descarga de ficheros de extensiones multiples con PHP?  (Leído 3,835 veces)
hack-4-life

Desconectado Desconectado

Mensajes: 52



Ver Perfil WWW
como forzar la descarga de ficheros de extensiones multiples con PHP?
« en: 15 Octubre 2011, 06:59 am »

Buenas a todos,he estado realizando un scrip que se me ocurrio que tal vez se pueda hacer o tal vez,me paso por la mente,el scrip que quiero hacer es algo sobre descarga de archivos multiples con php o forzar la descarga de multiples extensiones esto es lo que se hace al pasarle un valor a este codigo y forza la descarga

Código
  1. <?php
  2. $enlace ="/".$id;
  3.  
  4. header ("Content-Disposition: attachment; filename=".$id." ");
  5.  
  6. header ("Content-Type: application/octet-stream");
  7.  
  8. header ("Content-Length: ".filesize($enlace));
  9.  
  10. readfile($enlace);
  11.  
  12. ?>
  13.  
  14.  
y esta demas decir que para utizarlo se le pasa la ruta dowload?id=nombrearchivo.x

pero ahora viene lo bueno,lo que yo quiero hacer es que!
lo primero seria renombrar nuestro archivo download_multiple.php y con ese archivo cuando yo lo ejecute que me descargue todo lo que se encuentra en ese directorio ya sean .png,.jpg,.zip,.rar,.pdf,.mp3,.css  ficheros de multiples extensiones por asi decirlo!

buscando me he encontrado con unos codigos que tal vez alguno de ustedes expertos en el area me pudiera sugerir este es con que estoy tratando:

Código
  1. <?php
  2. $file = $_SERVER["DOCUMENT_ROOT"].'/.../.../'.$_GET['file'];
  3.  
  4. if(!file) { // File doesn't exist, output error die('file not found'); } else {
  5.  
  6. //$file_extension = strtolower(substr(strrchr($file,"."),1));
  7. $file_extension = end(explode(".", $file));
  8.  
  9. switch( $fileExtension)
  10. {
  11. case "pdf": $ctype="application/pdf"; break;
  12. case "exe": $ctype="application/octet-stream"; break;
  13. case "zip": $ctype="application/zip"; break;
  14. case "doc": $ctype="application/msword"; break;
  15. case "xls": $ctype="application/vnd.ms-excel"; break;
  16. case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
  17. case "gif": $ctype="image/gif"; break;
  18. case "png": $ctype="image/png"; break;
  19. case "jpeg":
  20. case "jpg": $ctype="image/jpg"; break;
  21. default: $ctype="application/force-download";
  22. }
  23.  
  24. nocache_headers();
  25.  
  26. // Set headers
  27. header("Pragma: public"); // required
  28. header("Expires: 0");
  29. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  30. header("Cache-Control: public"); // required for certain browsers
  31. header("Content-Description: File Transfer");
  32. header("Content-Type: $ctype");
  33. header("Content-Disposition: attachment; filename=".$file.";" );
  34. header("Content-Transfer-Encoding: binary");
  35. header("Content-Length: ".filesize($file));
  36.  
  37. readfile($file);
  38. } ?>
  39.  
  40.  
lo que entiendo por este codigo es que me descarga esos tipos de formatos de archivos,pero no se como implementarlo  tambien encontre algo asi creando un arreglo de extensiones de archivos

Código:
<?php
    $extensiones = array("PNG","zip","doc","rar","jpg");
    $f = $_GET["f"];
    if(strpos($f,"/")!==false){
        die("No puedes navegar por otros directorios");
    }
    $ftmp = explode(".",$f);
    $fExt = strtolower($ftmp[count($ftmp)-1]);

    if(!in_array($fExt,$extensiones)){
        die("<b>ERROR!</b> no es posible descargar archivos con la extensión $fExt");
    }

    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=\"$f\"\n");
    $fp=fopen("$f", "r");
    fpassthru($fp);
?>



pero no me funciona siempre me manda aqui y no entiendo si tengo todo bien   
 die("<b>ERROR!</b> no es posible descargar archivos con la extensión $fExt");

y otra cosa que me gustaria implementar es listar todos los archivos de ese directorio para eso lo hago asi:

Código:
<?php
echo "<h3>Index</h3>\n";
echo "<table>\n";
$directorio = opendir(".");
while ($archivo = readdir($directorio))
   {
   $nombreArch = ucwords($archivo);
   $nombreArch = str_replace("..", "Atras", $nombreArch);
   echo "<tr>\n<td>\n<a href='$archivo'>\n";

   echo " border=0>\n";
   echo "<b>&nbsp;$nombreArch</b></a></td>\n";
   echo "\n</tr>\n";
   }
closedir($directorio);
echo "</table>\n";
?>


de esta manera me lista todo el directorio y de ahi partir para forzar la descarga de todos  los ficheros con extensiones que contenga la carpeta! he estado leyendo el api de php pero viene algo parecido pero no le entiendo muy bien! http://php.net/manual/en/function.readfile.php
bueno seguire buscando como implementar para descargar multiples archivos o ficheros con direntes extensiones saludos xd y de antemano gracias!


En línea

""DE QUE SIRVE EL CONOCIMIENTO SI SE PRIVA DE SU DISTRIBUCION"
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema Forzar descarga url remota/externa
PHP
pisagatos 1 3,204 Último mensaje 10 Octubre 2008, 18:09 pm
por Erik#
forzar descarga archivo php
PHP
kakashi20 2 5,625 Último mensaje 7 Septiembre 2009, 19:46 pm
por kakashi20
Forzar Descarga PHP
PHP
Urpem 5 7,800 Último mensaje 12 Noviembre 2009, 15:21 pm
por Urpem
como Forzar HTTPS en mi sitio?
Seguridad
L0Ko 1 2,816 Último mensaje 20 Noviembre 2012, 09:04 am
por adastra
forzar descarga pdf
PHP
kakashi20 1 3,570 Último mensaje 27 Noviembre 2012, 10:44 am
por dimitrix
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines