elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 13:10  


Tema destacado: [AIO elhacker.NET] Compilación herramientas análisis y desinfección malware

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  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 683 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 »

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
<?php 
$enlace ="/".$id;
 
header ("Content-Disposition: attachment; filename=".$id." ");
 
header ("Content-Type: application/octet-stream");
 
header ("Content-Length: ".filesize($enlace));
 
readfile($enlace);
 
?>
 
 
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
<?php
$file = $_SERVER["DOCUMENT_ROOT"].'/.../.../'.$_GET['file'];
 
if(!file) { // File doesn't exist, output error die('file not found'); } else {
 
//$file_extension = strtolower(substr(strrchr($file,"."),1));
$file_extension = end(explode(".", $file));
 
switch( $fileExtension)
{
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
 
nocache_headers();
 
// Set headers
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public"); // required for certain browsers
header("Content-Description: File Transfer");
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=".$file.";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($file));
 
readfile($file);
} ?>
 
 
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
Forzar descarga de archivo externo
Desarrollo Web
dooku 3 1,214 Último mensaje 15 Mayo 2005, 19:24
por dooku
WGET forzar descarga
GNU/Linux
Xeneixe 1 653 Último mensaje 6 Agosto 2005, 20:46
por pepel
Forzar descarga archivo con javascript
Desarrollo Web
pisagatos 0 2,972 Último mensaje 9 Octubre 2008, 00:03
por pisagatos
forzar descarga archivo php
PHP
kakashi20 2 3,238 Último mensaje 7 Septiembre 2009, 19:46
por kakashi20
Forzar Descarga PHP
PHP
Urpem 5 3,439 Último mensaje 12 Noviembre 2009, 15:21
por Urpem
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines