home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / CMS / xoops-2.0.18.1.exe / xoops-2.0.18.1 / htdocs / class / zipdownloader.php < prev   
Encoding:
PHP Script  |  2005-11-03  |  3.7 KB  |  82 lines

  1. <?php
  2. // $Id: zipdownloader.php 2 2005-11-02 18:23:29Z skalpa $
  3. //  ------------------------------------------------------------------------ //
  4. //                XOOPS - PHP Content Management System                      //
  5. //                    Copyright (c) 2000 XOOPS.org                           //
  6. //                       <http://www.xoops.org/>                             //
  7. //  ------------------------------------------------------------------------ //
  8. //  This program is free software; you can redistribute it and/or modify     //
  9. //  it under the terms of the GNU General Public License as published by     //
  10. //  the Free Software Foundation; either version 2 of the License, or        //
  11. //  (at your option) any later version.                                      //
  12. //                                                                           //
  13. //  You may not change or alter any portion of this comment or credits       //
  14. //  of supporting developers from this source code or any supporting         //
  15. //  source code which is considered copyrighted (c) material of the          //
  16. //  original comment or credit authors.                                      //
  17. //                                                                           //
  18. //  This program is distributed in the hope that it will be useful,          //
  19. //  but WITHOUT ANY WARRANTY; without even the implied warranty of           //
  20. //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            //
  21. //  GNU General Public License for more details.                             //
  22. //                                                                           //
  23. //  You should have received a copy of the GNU General Public License        //
  24. //  along with this program; if not, write to the Free Software              //
  25. //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA //
  26. //  ------------------------------------------------------------------------ //
  27. // Author: Kazumi Ono (AKA onokazu)                                          //
  28. // URL: http://www.myweb.ne.jp/, http://www.xoops.org/, http://jp.xoops.org/ //
  29. // Project: The XOOPS Project                                                //
  30. // ------------------------------------------------------------------------- //
  31. if (!defined('XOOPS_ROOT_PATH')) {
  32.     exit();
  33. }
  34. include_once XOOPS_ROOT_PATH.'/class/downloader.php';
  35. include_once XOOPS_ROOT_PATH.'/class/class.zipfile.php';
  36.  
  37. class XoopsZipDownloader extends XoopsDownloader
  38. {
  39.     function XoopsZipDownloader($ext = '.zip', $mimyType = 'application/x-zip')
  40.     {
  41.         $this->archiver = new zipfile();
  42.         $this->ext      = trim($ext);
  43.         $this->mimeType = trim($mimyType);
  44.     }
  45.  
  46.     function addFile($filepath, $newfilename=null)
  47.     {
  48.         // Read in the file's contents
  49.         $fp = fopen($filepath, "r");
  50.         $data = fread($fp, filesize($filepath));
  51.         fclose($fp);
  52.         $filename = (isset($newfilename) && trim($newfilename) != '') ? trim($newfilename) : $filepath;
  53.         $this->archiver->addFile($data, $filename, filemtime($filename));
  54.     }
  55.  
  56.     function addBinaryFile($filepath, $newfilename=null)
  57.     {
  58.         // Read in the file's contents
  59.         $fp = fopen($filepath, "rb");
  60.         $data = fread($fp, filesize($filepath));
  61.         fclose($fp);
  62.         $filename = (isset($newfilename) && trim($newfilename) != '') ? trim($newfilename) : $filepath;
  63.         $this->archiver->addFile($data, $filename, filemtime($filename));
  64.     }
  65.  
  66.     function addFileData(&$data, $filename, $time=0)
  67.     {
  68.         $this->archiver->addFile($data, $filename, $time);
  69.     }
  70.  
  71.     function addBinaryFileData(&$data, $filename, $time=0)
  72.     {
  73.         $this->addFileData($data, $filename, $time);
  74.     }
  75.  
  76.     function download($name, $gzip = true)
  77.     {
  78.         $this->_header($name.$this->ext);
  79.         echo $this->archiver->file();
  80.     }
  81. }
  82. ?>