Source for file jResponseZip.class.php

Documentation is available at jResponseZip.class.php

  1. <?php
  2. /**
  3. @package     jelix
  4. @subpackage  core_response
  5. @author      Laurent Jouanneau
  6. @copyright   2006-2010 Laurent Jouanneau
  7. @link        http://www.jelix.org
  8. @licence     GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  9. */
  10.  
  11. /**
  12.  *
  13.  */
  14. include JELIX_LIB_UTILS_PATH.'jZipCreator.class.php';
  15.  
  16. /**
  17. * generate a zip content and send it to the browser
  18. @package  jelix
  19. @subpackage core_response
  20. */
  21. class jResponseZip extends jResponse {
  22.     /**
  23.     * @var string 
  24.     */
  25.     protected $_type = 'zip';
  26.  
  27.     /**
  28.      * the zip content. Manipulates it to add files into it
  29.      * @var jZipCreator 
  30.      */
  31.     public $content = null;
  32.  
  33.     /**
  34.      * file name which appear in the browser
  35.      */
  36.     public $zipFilename='';
  37.  
  38.     /**
  39.     * constructor
  40.     */
  41.     function __construct (){
  42.         $this->content = new jZipCreator();
  43.         parent::__construct();
  44.     }
  45.  
  46.     /**
  47.      * construct the zip content into zip format, and send it to the browser
  48.      * @return boolean    true  if it's ok
  49.      */
  50.     public function output(){
  51.         $zipContent $this->content->getContent();
  52.         $this->_httpHeaders['Content-Type']='application/zip';
  53.         $this->_httpHeaders['Content-Disposition']='attachment; filename="'.$this->zipFilename.'"';
  54.  
  55.         $this->addHttpHeader('Content-Description','File Transfert',false);
  56.         $this->addHttpHeader('Content-Transfer-Encoding','binary',false);
  57.         $this->addHttpHeader('Pragma','no-cache',false);
  58.         $this->addHttpHeader('Cache-Control','no-store, no-cache, must-revalidate, post-check=0, pre-check=0',false);
  59.         $this->addHttpHeader('Expires','0',false);
  60.  
  61.         $this->_httpHeaders['Content-length']=strlen($zipContent);
  62.         $this->sendHttpHeaders();
  63.         echo $zipContent;
  64.         flush();
  65.         return true;
  66.     }
  67.  
  68. }

Documentation generated on Mon, 19 Sep 2011 14:13:31 +0200 by phpDocumentor 1.4.3