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:15  


Tema destacado: [Overclocking] Récords de overclock del foro

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Descargar los archivos de una carpeta de un servidor + PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Descargar los archivos de una carpeta de un servidor + PHP  (Leído 3,649 veces)
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Descargar los archivos de una carpeta de un servidor + PHP
« en: 26 Enero 2011, 00:18 »

Como podría hacer que por ejemplo, toda la carpeta de httpdocs se descargará en mi laptop. Ya sea archivo por archivo -automaticamente- o crear un ZIP o RAR con los archivos y después descargarlo.

Si tiene un script por ahí podrían pasármelo, mientras tanto voy a construirlo. Alguna ayuda?


En línea

---
drvy | BSM


Desconectado Desconectado

Mensajes: 1.129


badstupidmonkey


Ver Perfil WWW
Re: Descargar los archivos de una carpeta de un servidor + PHP
« Respuesta #1 en: 26 Enero 2011, 00:48 »

Suponiendo que la carpeta tiene un index donde hace lista a todos los archivos o que es un script en el mismo host donde estan los archivos ?



Saludos


En línea
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: Descargar los archivos de una carpeta de un servidor + PHP
« Respuesta #2 en: 26 Enero 2011, 00:49 »

En el mismo host donde están los archivos.
En línea

---
drvy | BSM


Desconectado Desconectado

Mensajes: 1.129


badstupidmonkey


Ver Perfil WWW
Re: Descargar los archivos de una carpeta de un servidor + PHP
« Respuesta #3 en: 26 Enero 2011, 01:19 »

Código
<?php
// drvy
$carpeta = 'files/';
$permitidos = array('php','css','html','p0rnxD');
$archivo_final = 'descargas.zip';  // .zip *
 
$zip = new ZipArchive();
if ($zip->open($archivo_final, ZIPARCHIVE::CREATE)==TRUE){
if ($abrir = opendir($carpeta)) {
while (false !== ($archivo = readdir($abrir))) {
$extension = substr($archivo, strrpos($archivo, '.') + 1);
if (in_array($extension, $permitidos)) {
$zip->addFile($carpeta.$archivo,$archivo);
}
}
closedir($abrir);
} else {echo ' no se ha podido abrir la carpeta';}
} else {echo 'No se ha podido crear un archivo zip!';}
$zip->close();
echo 'Listo';
 
?>
 

Lo hice algo rapidito pero funciona segun probé.



Saludos
En línea
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: Descargar los archivos de una carpeta de un servidor + PHP
« Respuesta #4 en: 26 Enero 2011, 01:27 »

Gracias, aun no lo pruebo, pero cabe aclarar a qué dentro de httpdocs hay subcarpetas y así sucesivamente...
En línea

---
drvy | BSM


Desconectado Desconectado

Mensajes: 1.129


badstupidmonkey


Ver Perfil WWW
Re: Descargar los archivos de una carpeta de un servidor + PHP
« Respuesta #5 en: 26 Enero 2011, 02:31 »

Código
<?php
//drvy
 
$carpeta = 'files/';
$permitidos = array('php','css');
$archivo_final = 'descargas.zip';  // .zip *
$zip = new ZipArchive();
if ($zip->open($archivo_final, ZIPARCHIVE::CREATE)!=TRUE){die('No se ha podido crear un archivo zip!');}
 
function archivar($carpeta,$permitidos,$zip)
{
       $carpetas = scandir($carpeta);
       foreach($carpetas as $archivo)
       {
               if (($archivo == '.')||($archivo == '..')){}
 
               elseif (is_dir($carpeta.'/'.$archivo)){
archivar($carpeta.'/'.$archivo,$permitidos,$zip);
 
}else{
$extension = substr($archivo, strrpos($archivo, '.') + 1);
if (in_array($extension, $permitidos)) {
                       $zip->addFile($carpeta.'/'.$archivo,$carpeta.'/'.$archivo);
}
               }
       }
}
 
archivar($carpeta,$permitidos,$zip);
$zip->close();
echo 'Listo';
?>
 

Adapte un script que encontré en opendir() que permitia explorar todos los directorios, sub-directorios.... y las ovejas de las ovejas de una carpeta.

Lo malo es que, una vez creado el ZIP al explorarlo las carpetas no están marcadas como tal pero si son accesibles y funciona todo bien.

PD: Ten en cuenta que si hay muchos directorios y archivos es posible que el max_execution_time se sobre pase y por lo tanto no conseguir nada xD.


Saludos
En línea
WHK
吴阿卡
Ex-Staff
*
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


Ver Perfil WWW
Re: Descargar los archivos de una carpeta de un servidor + PHP
« Respuesta #6 en: 26 Enero 2011, 18:23 »

recursivo:

Código
function comprimir($ruta, $zip_salida, $handle = false, $recursivo = false){
 
 if(!is_dir($ruta) and !is_file($ruta))
  return false; /* La ruta no existe */
 
 /* Declara el handle del objeto */
 if(!$handle){
  $handle = new ZipArchive;
  if ($handle->open($zip_salida, ZipArchive::CREATE) === false){
   return false; /* Imposible crear el archivo ZIP */
  }
 }
 
 /* Procesa directorio */
 if(is_dir($ruta)){
  $ruta = dirname($ruta.'/arch.ext'); /* Aseguramos que sea un directorio sin carácteres corruptos */
  $handle->addEmptyDir($ruta); /* Agrega el directorio comprimido */
  foreach(glob($ruta.'/*') as $url){ /* Procesa cada directorio o archivo dentro de el */
   comprimir($url, $zip_salida, $handle, true); /* Comprime el subdirectorio o archivo */
  }
 
 /* Procesa archivo */
 }else
  $handle->addFile($ruta);
 
 /* Finaliza el ZIP si no se está ejecutando una acción recursiva en progreso */
 if(!$recursivo)
  $handle->close();
 
 return true; /* Retorno satisfactorio */
}
En línea

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No mostrar archivos de una carpeta
Desarrollo Web
BenRu 5 408 Último mensaje 18 Octubre 2006, 06:40
por MakiaResc
Compartir carpeta en red con Servidor de Archivos Windows Server 2008
Redes
sparrowise 4 10,035 Último mensaje 13 Julio 2011, 17:19
por madpitbull_99
carpeta vacia en servidor
Windows
OssoH 1 700 Último mensaje 25 Mayo 2010, 16:58
por Randomize
Servidor de correos y Servidor de archivos bajo freeBSD
GNU/Linux
spectre89 3 2,495 Último mensaje 25 Julio 2010, 06:41
por unixgeek
Descargar archivos del servidor y mysql
PHP
mark182 2 1,771 Último mensaje 9 Noviembre 2010, 17:11
por mark182
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines