Comunidad de diseño web y desarrollo en internet online

¿Como genero un ZIP? (archivos pesados)

Citar            
MensajeEscrito el 22 May 2009 06:54 pm
Gracias por leerme, necesito crear archivos zip a partir de un directorio completo, en el cual deposito documentos mediante php, el siguiente codigo lo hace muy bien:

Código :

<?php 
include('zipArchive.lib.php'); 
$zip = new zipArchive(); 
  
$dir = "../reportes/"; // directorio a comprimir
  
$directorio=opendir($dir); 
while ($archivo = readdir($directorio)) { 
if(!is_dir("$dir/$archivo")) 
$zip->addFile($dir.'/'.$archivo, $archivo); 
} 
closedir($directorio); 

$nombre = date("d-m-Y_H-i-s");  
$nombre .=".zip";
$pathSave = "../dwld/".$nombre; // dwld es donde se deposita el zip
$zip->saveZip($pathSave); 
$zip->downloadZip($pathSave);
?>


Pero! cuando los archivos son muchos no hacia nada (se saturaba), lo midifiqué para que cada 5 archivos genere un zip, y si trabaja bien:

Código :

<?php 
include('zipArchive.lib.php'); 
$zip = new zipArchive(); 
  
$dir = "../reportes/";  // directorio a comprimir
  
$suma = 0;
$sum = 1;
$directorio=opendir($dir); 
while ($archivo = readdir($directorio)) { 
   if(!is_dir("$dir/$archivo")) {
      $zip->addFile($dir.'/'.$archivo, $archivo); 
   }
   $suma++;
   if ($suma == 5){
      $nombre = "paq_".$sum."_".date("d-m-Y_H-i-s");  
      $nombre .=".zip";
      $pathSave = "../dwld/".$nombre;  // dwld es donde se deposita el zip
      $zip->saveZip($pathSave); 

      $zip = new zipArchive(); 

$suma = 0;
$sum++;
   }
}
closedir($directorio); 
?>


Ahora mi problema: Cuando un archivo (de los muchos que hay en el directorio) es muy pesado (20 Mb o mas) se atora. ¿Alguna posible solución?

Gracias por sus aportes.

Por elmaick123

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 May 2009 09:04 pm
que servidor mira la configuracion de el php.ini saludos

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 22 May 2009 09:15 pm
Servidor: WAMP
Solicité el cambio de algunos valores del php ini:
max_execution_time = 180
max_input_time = 180
memory_limit = 100M

con los valores por defecto solo comprimía 2 Mb máximo, con estos cambios lo hace hasta con 13 Mb, ¿crees que deban subir mas los valores? la mayoria de los archivos (pesados) son de 30-40 Mb.

Por elmaick123

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 May 2009 09:53 pm
si q te aumenten los dos primeros
has un calculo de cuanto te puedes gastar para q no gastes muchos recursos . saludos

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 22 May 2009 10:07 pm
Resuelto, probando en localhost funcionó con los siguientes valores:
max_execution_time = 360
max_input_time = 360
memory_limit = 200M * solo era necesario este cambio pero mas vale asegurarse.

Será utilizado en intranet y por pocos usuarios (acceso reestringido), por lo que esperamos no acabarnos los recursos.


Muchas Gracias Talcual, Saludos desde México.

Por elmaick123

5 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.