source: temp/test-xoops.ec-cube.net/html/class/zipdownloader.php @ 405

Revision 405, 3.9 KB checked in by root, 20 years ago (diff)
Line 
1<?php
2// $Id: zipdownloader.php,v 1.4 2005/08/03 12:39:11 onokazu Exp $
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// ------------------------------------------------------------------------- //
31if (!defined('XOOPS_ROOT_PATH')) {
32    exit();
33}
34include_once XOOPS_ROOT_PATH.'/class/downloader.php';
35include_once XOOPS_ROOT_PATH.'/class/class.zipfile.php';
36
37class 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        $filepath = is_file($filename) ? $filename : $filepath;
54        $this->archiver->addFile($data, $filename, filemtime($filepath));
55    }
56
57    function addBinaryFile($filepath, $newfilename=null)
58    {
59        // Read in the file's contents
60        $fp = fopen($filepath, "rb");
61        $data = fread($fp, filesize($filepath));
62        fclose($fp);
63        $filename = (isset($newfilename) && trim($newfilename) != '') ? trim($newfilename) : $filepath;
64        $filepath = is_file($filename) ? $filename : $filepath;
65        $this->archiver->addFile($data, $filename, filemtime($filepath));
66    }
67
68    function addFileData(&$data, $filename, $time=0)
69    {
70        $this->archiver->addFile($data, $filename, $time);
71    }
72
73    function addBinaryFileData(&$data, $filename, $time=0)
74    {
75        $this->addFileData($data, $filename, $time);
76    }
77
78    function download($name, $gzip = true)
79    {
80        $this->_header($name.$this->ext);
81        echo $this->archiver->file();
82    }
83}
84?>
Note: See TracBrowser for help on using the repository browser.