Agregar Archivos a un zip y forzar su descarga


/ Published in: PHP
Save to your folder(s)

Lo dicho, una clase en PHP que agrega archivos a un zip y forza su descarga, para este caso los archivos que agrega son XML.


Copy this code and paste it in your HTML
  1. <?php
  2. /*
  3.  * To change this template, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6.  
  7. /**
  8.  * Clase usada para comprimir los xml dentro de un zip
  9.  * el archivo se llama ArchivoZip.inc.php
  10.  * @author Cesar Nava Camacho
  11.  */
  12.  
  13. class ArchivoZip{
  14. var $zip;
  15. var $nombreArchivo;
  16. function ArchivoZip(){
  17. //Se crea un archivo temporal en la carpeta temporal default del sistema servidor
  18. $this->nombreArchivo = tempnam(sys_get_temp_dir(), "zip");
  19. $this->zip = new ZipArchive();
  20. $this->zip->open($this->nombreArchivo, ZipArchive::OVERWRITE);
  21. $this->zip->addEmptyDir("xmlRedalyc");
  22. }
  23.  
  24. function agregarArchivo($archivo, $nombre){
  25. $nombre = str_replace(" ", "_", $nombre);
  26. $this->zip->addFromString("xmlRedalyc/ $nombre.xml", $archivo);
  27. }
  28.  
  29. function cerrarZip(){
  30. $this->zip->close();
  31. header("Content-type: application/zip");
  32. header("Content-Disposition: attachment; filename=$this->nombreArchivo.zip");
  33. header("Content-Transfer-Encoding: binary");
  34. readfile($this->nombreArchivo);
  35. unlink($this->nombreArchivo);//Destruye el archivo temporal
  36. }
  37. }
  38.  
  39. ?>

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.