Foros del Web » Programando para Internet » PHP »

Trabajar con el contenido de un zip

Estas en el tema de Trabajar con el contenido de un zip en el foro de PHP en Foros del Web. Hola amigos de foros del web, hace poco se me ocurrió un proyectillo, donde se tiene que trabajar con archivos zip, el chiste es que ...
  #1 (permalink)  
Antiguo 17/12/2010, 00:17
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Trabajar con el contenido de un zip

Hola amigos de foros del web, hace poco se me ocurrió un proyectillo, donde se tiene que trabajar con archivos zip, el chiste es que tengo que cargar un zip y extraer su contenido para ponerlo en una carpeta, eso lo logré leyendo el manejo de archivs zip y cree este códiguito simple

archivo html subir zip
Código HTML:
Ver original
  1. <title>Subir manga</title>
  2. </head>
  3. <body>    
  4.     <form name="form1" action="file.php" method="post" enctype="multipart/form-data">
  5.         <input type="text" name="carpeta"/><br/>
  6.         <input type="file" name="zip"/>
  7.         <input type="submit" value="Subir"/>
  8.     </form>
  9. </body>
  10. </html>

archivo php file.php

Código PHP:
Ver original
  1. <?php
  2. $car = $_POST['carpeta'];
  3. $zip = $_FILES['zip']['name'];
  4. $temp = $_FILES['zip']['tmp_name'];
  5. $tipo = $_FILES['zip']['type'];
  6. echo $zip."<br/>";
  7. echo $temp."<br/>";
  8. echo $tipo."<br/>";
  9.  
  10. if($tipo = "application/zip")
  11. {
  12.     $zip = new ZipArchive;
  13.     if ($zip->open($temp) === TRUE)
  14.     {
  15.         $dir = $car;
  16.         $zip->extractTo($dir);
  17.         $zip->close();
  18.         echo ' ok ';
  19.     }
  20.     else
  21.     {
  22.         echo ' El archivo no es ZIP ';
  23.     }
  24. }
  25. ?>

simple pero eficiente, lo dejo por si alguien le sirve

ahora lo que quiero es saber si alguien tiene experiencia en este tipo de proyectos, lo que quiero es trabjar el contenido extraido, por ejemplo quiero comprobar si el archivo tiene una carpeta dentro algo asi como:

prueba.zip->carpeta->imagenes

o si no la tiene

prueba.zip->imagenes

y con una condicional crear el nombre de la carpeta con el codigo de arriba, tambien quiero renombrar cada una de las imagenes con un for (por que el proyecto es de subir paquetes de imagenes), y comprobar si realmente son imagenes y no otro tipo de archivo como php por ejemplo lo cual seria catastrófico.

todo esto lo se hacer con archivos que no esten dentro de un zip pero ya planteado este problema no tengo ni jodida idea.

como ven tengo la lógica, pero me falta la tecnica y la práctica.

quisiera que me ayudaran en este aspecto, prometo esforzarme mucho, y si solo tienen un link que pueda estudiar para esto se los agradeceré mucho.

:D
  #2 (permalink)  
Antiguo 17/12/2010, 00:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Trabajar con el contenido de un zip

mira, incluso los gestores para archivos comprimidos deben extraer temporalmente los archivos para poder manipularlos, así que ni imagines cosas que desconoces...

a ciencia cierta no se puede trabajar dentro del Zip...

¿solución?

¡ya la tienes!

extraes los archivos, procesas, comparas, analizas, etc... al final, puedes hacer lo que quieras con los archivos... borrarlos, volverlos a empaquetar, etc...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/12/2010, 00:51
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Trabajar con el contenido de un zip

Pues a eso me referia, como desconozco el tema se me ocurrio preguntar y como dije,
"lo que quiero es trabjar el contenido extraido", entonces si es mucha molestia me podrias decir como debo o de que forma es aconsejable o mejor dicho podrias guiarme (eso si es mucha molestia) en como trabajar ese contenido extraido, gracias pateke (Y),

PD: supongo que será con fopen por ejemplo, pero aqui el problema es que requiero saber si las imagenes del zip vienen en una carpeta o vienen directamente en el zip mmm.
  #4 (permalink)  
Antiguo 17/12/2010, 00:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Trabajar con el contenido de un zip

a ver, contenido e información son cosas diferentes...

si ya eres capaz de extraer los datos en determinado lugar, deberías poder tratar el contenido, o sea, dichos archivos usando las funciones del sistema de archivos...

http://www.php.net/manual/es/ref.filesystem.php

ahora, si quieres saber que tipo de contenido trae y su estructura antes de extraer puede revisar los diversos métodos de información que trae la clase que empleas actualmente...

http://php.net/manual/en/class.ziparchive.php

aunque bueno, extrayendo los archivos y usando las funciones de archivos debería bastar... hay que leer bien, y descubrir que funciones pueden ser de utilidad...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 17/12/2010, 01:02
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Trabajar con el contenido de un zip

ok gracias espero que con eso me baste, a leer se ha dicho :)

Etiquetas: contenido, zip, trabajo
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 12:13.