Foros del Web » Programando para Internet » PHP »

Comprimir directorio

Estas en el tema de Comprimir directorio en el foro de PHP en Foros del Web. Hola Necesito zipear el contenido de una carpeta y bajarlo a disco. Ensayé todas las clases que andan dando vueltas y me quedé con esta. ...
  #1 (permalink)  
Antiguo 01/04/2009, 03:08
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 7 meses
Puntos: 1
Comprimir directorio

Hola
Necesito zipear el contenido de una carpeta y bajarlo a disco.
Ensayé todas las clases que andan dando vueltas y me quedé con esta. Lo que intento es recorrer todas las imágenes del directorio (sólo imágenes) pero el zip me queda vacío.

Código PHP:

//folder Name
$myfolder '.';

$tope=0;

$njpg=count(glob("$myfolder/*.jpg"));
//echo $njpg;

$ngif=count(glob("$myfolder/*.gif"));
//echo $ngif;

$npng=count(glob("$myfolder/*.png"));
//echo $npng;

$total=$njpg+$ngif+$npng;
//echo $total;

$to_zip="";
//open folder and read content
if (is_dir($myfolder)) {
if (
$read opendir($myfolder)) {
while (
$myfile readdir($read)) {

//verify filetype before of show
if ((strpos($myfile".gif") > 1) || (strpos($myfile".png" ) > 1) || (strpos($myfile".jpg" ) > 1) ) {

$tope++;
if (
strpos($myfile".jpg")){$present ='<img src="'.$myfolder.'/'.$myfile.'" width="40" height="40" alt="image" /><br />'.$myfile.'';

}
elseif (
strpos($myfile".png")){$present ='<img src="'.$myfolder.'/'.$myfile.'" width="40" height="40" alt="image" /><br />'.$myfile.'';

}
elseif (
strpos($myfile".gif")){$present ='<img src="'.$myfolder.'/'.$myfile.'" width="40" height="40" alt="image" /><br />'.$myfile.'';

}

//echo $tope;
$lim=$tope-1;

$to_zip.='"';
$to_zip.=$myfile;
$to_zip.='"';
if(
$tope<$total) {

$to_zip.=',';

}

$full=$to_zip// CORREGIDO !!!!!!!!!!!!!!!!!!!!!!!!!
}

}
//close folder
closedir($read);
}
}

//echo $full;

include("zip.lib.php");
$ziper = new zipfile();
$ziper->addFiles(array($full));  //array of files
$ziper->output("sample.zip"); 
El error está en:
$ziper->addFiles(array($full)); //array of files
Es el segundo post esta semana con un problema parecido
Pero si yo reemplazo con el real contenido de $full ahí en la varialbe... todo trabaja perfecto... entonces no puedo entender dónde, qué, cómo corregir.

El contenido de la variable $full es esto:

"583282-st-a.jpg","583282-a.jpg","548099-st-a.jpg","548099-a.jpg","67665-st-a.jpg","67665-a.jpg","827821-st-a.jpg","827821-a.jpg","67681-st-a.jpg","940642-st-a.jpg","940642-a.jpg","67667-st-a.jpg","135279-st-a.jpg","940637-st-a.jpg","940637-a.jpg","67666-st-a.jpg","940641-st-a.jpg","940641-a.jpg","67660-st-a.jpg","67668-st-a.jpg","135280-st-a.jpg","940636-st-a.jpg","940636-a.jpg","135283-st-a.jpg","940638-st-a.jpg","940638-a.jpg","940639-st-a.jpg","940639-a.jpg","135278-st-a.jpg","135277-st-a.jpg","940681-st-a.jpg","940681-a.jpg","940682-st-a.jpg","940682-a.jpg","447847-st-a.jpg","447847-a.jpg","67674-st-a.jpg","67673-st-a.jpg","67673-a.jpg","67671-st-a.jpg","67672-st-a.jpg","135282-st-a.jpg","135282-a.jpg","no_image.gif","67676-st-a.jpg","67677-st-a.jpg","67680-st-a.jpg","92028-st-a.jpg","92028-a.jpg","67678-st-a.jpg"


Si hago un copy/paste y reemplazo por eso mismo anda pero con $full no
Ayuda por favor.

Última edición por Suyta; 01/04/2009 a las 05:55
  #2 (permalink)  
Antiguo 01/04/2009, 05:24
 
Fecha de Ingreso: mayo-2005
Mensajes: 188
Antigüedad: 19 años
Puntos: 6
Exclamación Respuesta: Comprimir directorio

Pues o falta alguna línea, o no veo dónde se asigna la variable $full. El código que se encarga de generar el zip es este:
Código php:
Ver original
  1. include("zip.lib.php");
  2. $ziper = new zipfile();
  3. $ziper->addFiles(array($full));  //array of files
  4. $ziper->output("sample.zip");

Sin embargo en todo el código que le precede, en ningún momento se le da ningún valor a $full.
  #3 (permalink)  
Antiguo 01/04/2009, 05:57
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Comprimir directorio

Si, perdón, le faltaba una línea... me confundí al copiar aquí pero en mi script siempre estuvo o sea que no es esa la causa
  #4 (permalink)  
Antiguo 01/04/2009, 06:43
 
Fecha de Ingreso: mayo-2005
Mensajes: 188
Antigüedad: 19 años
Puntos: 6
Respuesta: Comprimir directorio

Por favor, indica el error que te aparece. Y si tienes la documentación de la librería ZIP que utilizas, indica también la sintaxis del método addFiles de la clase zipfile.
  #5 (permalink)  
Antiguo 01/04/2009, 13:40
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Comprimir directorio

Hola
no me aparece ningún error, ninguna noticia, nada.
No tengo la documentación de la clase, voy a tratar de conseguirla
Gracias !
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:47.