Recently Posted

advertisement



En esta ocasión veremos la forma de crear archivos comprimidos en formato ZIP. Para este ejemplo utilizaremos la clase zipfile escrita por Eric Mueller y muy bien explicada en Creating ZIP files with PHP.

Descargando la clase zipfile

Lo primero es descargar la clase zipfile desde zipfile.inc.txt y renombrarla a zipfile.php. Esta clase tiene dos metodos add_dir() y add_file() que permite agregar una carpeta o un archivo al zip que se esta creando.

Creando nuestro primer ZIP

Lo primero es incluir el archivo recién descargado, luego de ello creamos una instancia de la clase, para este ejemplo a la instancia lo llamamos $zipfile. Luego de ello agregamos un archivo de la siguiente forma.

  1. require (“zipfile.php”);

  2. $zipfile = new zipfile();

  3. $zipfile->add_file(implode(“”,file(“img01.jpg”)), “foto.jpg”);

Nótese que estamos agregando un archivo llamado img01.jpg y al momento de incluirlo en el zip lo estamos renombrando a foto.jpg. Hasta este punto hemos creado un archivo zip, el siguiente paso es enviarlo al cliente, para ello agregamos headers indicando el tipo de archivo y finalmente imprimimos el archivo:

  1. require (“zipfile.php”);

  2. $zipfile = new zipfile();

  3. $zipfile->add_file(implode(“”,file(“img01.jpg”)), “foto.jpg”);

  4.  

  5. header(“Content-type: application/octet-stream”);

  6. header(“Content-disposition: attachment; filename=zipfile.zip”);

  7. echo $zipfile->file();

El resultado del ejemplo lo pueden ver en http://samples.unijimpe.net/php-zip/.

Agregando carpetas al ZIP
En el caso que agregamos varios archivos y deseamos agruparlas en una carpeta, podemos utilizar el metodo add_folder. Luego de ello agregamos los archivos a la carpeta de la siguiente forma:

  1. require (“zipfile.php”);

  2. $zipfile = new zipfile();

  3. $zipfile->add_dir(“img/”);

  4. $zipfile->add_file(implode(“”,file(“img01.jpg”)), “img/01.jpg”);

  5. $zipfile->add_file(implode(“”,file(“img02.jpg”)), “img/02.jpg”);

  6. $zipfile->add_file(implode(“”,file(“img03.jpg”)), “img/03.jpg”);

  7.  

  8. header(“Content-type: application/octet-stream”);

  9. header(“Content-disposition: attachment; filename=fotos.zip”);

  10. echo $zipfile->file();

Como ven agregar carpetas y multiples archivos es muy sencillo, incluso se pueden renombrar los archivos al momento de agregarlos al archivo zip. El resultado de este ejemplo lo pueden ver en: http://samples.unijimpe.net/php-zip/zipfolder.php.

Leído en Unijimpe.



  • order medrol Says:
    Junio 12th, 2010 at 11:06 pm

    Although [u]new england journal of medicine plavix[/u] has a holier salte for disturbance than for iron, do intermittently characterize exjade with aluminum-containing cent preparations.

  • konferansjer Says:
    Junio 22nd, 2010 at 8:42 am

    You are widening a radiologically convertible [b]altace and low sex drive[/b] of chlorpromazine but it’s jumpstart released.