PageRenderTime 17ms CodeModel.GetById 12ms app.highlight 2ms RepoModel.GetById 0ms app.codeStats 1ms

/PHPExcel/Shared/ZipArchive.php

https://bitbucket.org/nfredricks/wp-employee-time
PHP | 114 lines | 36 code | 19 blank | 59 comment | 3 complexity | 9a9aa4cc2fab4fc2492b2ca79c998c3e MD5 | raw file
  1<?php
  2/**
  3 * PHPExcel
  4 *
  5 * Copyright (c) 2006 - 2012 PHPExcel
  6 *
  7 * This library is free software; you can redistribute it and/or
  8 * modify it under the terms of the GNU Lesser General Public
  9 * License as published by the Free Software Foundation; either
 10 * version 2.1 of the License, or (at your option) any later version.
 11 *
 12 * This library is distributed in the hope that it will be useful,
 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15 * Lesser General Public License for more details.
 16 *
 17 * You should have received a copy of the GNU Lesser General Public
 18 * License along with this library; if not, write to the Free Software
 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 20 *
 21 * @category   PHPExcel
 22 * @package    PHPExcel_Shared_ZipArchive
 23 * @copyright  Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
 24 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
 25 * @version    1.7.8, 2012-10-12
 26 */
 27
 28if (!defined('PCLZIP_TEMPORARY_DIR')) {
 29	define('PCLZIP_TEMPORARY_DIR', PHPExcel_Shared_File::sys_get_temp_dir());
 30}
 31require_once PHPEXCEL_ROOT . 'PHPExcel/Shared/PCLZip/pclzip.lib.php';
 32
 33
 34/**
 35 * PHPExcel_Shared_ZipArchive
 36 *
 37 * @category   PHPExcel
 38 * @package    PHPExcel_Shared_ZipArchive
 39 * @copyright  Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
 40 */
 41class PHPExcel_Shared_ZipArchive
 42{
 43
 44	/**	constants */
 45	const OVERWRITE		= 'OVERWRITE';
 46	const CREATE		= 'CREATE';
 47
 48
 49	/**
 50	 * Temporary storage directory
 51	 *
 52	 * @var string
 53	 */
 54	private $_tempDir;
 55
 56	/**
 57	 * Zip Archive Stream Handle
 58	 *
 59	 * @var string
 60	 */
 61	private $_zip;
 62
 63
 64    /**
 65	 * Open a new zip archive
 66	 *
 67	 * @param	string	$fileName	Filename for the zip archive
 68	 * @return	boolean
 69     */
 70	public function open($fileName)
 71	{
 72		$this->_tempDir = PHPExcel_Shared_File::sys_get_temp_dir();
 73
 74		$this->_zip = new PclZip($fileName);
 75
 76		return true;
 77	}
 78
 79
 80    /**
 81	 * Close this zip archive
 82	 *
 83     */
 84	public function close()
 85	{
 86	}
 87
 88
 89    /**
 90	 * Add a new file to the zip archive from a string of raw data.
 91	 *
 92	 * @param	string	$localname		Directory/Name of the file to add to the zip archive
 93	 * @param	string	$contents		String of data to add to the zip archive
 94     */
 95	public function addFromString($localname, $contents)
 96	{
 97		$filenameParts = pathinfo($localname);
 98
 99		$handle = fopen($this->_tempDir.'/'.$filenameParts["basename"], "wb");
100		fwrite($handle, $contents);
101		fclose($handle);
102
103		$res = $this->_zip->add($this->_tempDir.'/'.$filenameParts["basename"],
104								PCLZIP_OPT_REMOVE_PATH, $this->_tempDir,
105								PCLZIP_OPT_ADD_PATH, $filenameParts["dirname"]
106							   );
107		if ($res == 0) {
108			throw new Exception("Error zipping files : " . $this->_zip->errorInfo(true));
109		}
110
111		unlink($this->_tempDir.'/'.$filenameParts["basename"]);
112	}
113
114}