<?php // Example. Zip all .html files in the current directory and save to current directory. // Make a copy, also to the current dir, for good measure. //$mem = ini_get('memory_limit'); //$extime = ini_get('max_execution_time'); // ////ini_set('memory_limit', '512M'); //ini_set('max_execution_time', 120); include_once "ZipStream.php"; //print_r(ini_get_all()); $fileTime = date("D, d M Y H:i:s T"); $chapter1 = "Chapter 1\n" . "Lorem ipsum\n" . "Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n"; $zip = new ZipStream("ZipStreamExample1s.zip"); $zip->setComment("Example Zip file for Large file sets.\nCreated on " . date('l jS \\of F Y h:i:s A')); $zip->openStream("big one3.txt"); $zip->addStreamData($chapter1 . "\n\n\n"); $zip->addStreamData($chapter1 . "\n\n\n"); $zip->addStreamData($chapter1 . "\n\n\n"); $zip->closeStream(); $zip->addDirectory("Empty Dir"); $zip->finalize(); // Mandatory, needed to send the Zip files central directory structure.
<?php /* * A test to see if it was possible to recreate the result of * Issue #7, if not the cause. * And a demnostration why the author of the script calling zip * needs to be dilligent not to add extra characters to the output. */ include_once "ZipStream.php"; $zip = new ZipStream("test.zip"); /* * As seen in the output, the above construct with a PHP end and start tag after * creating the ZipStream is a bad idea. The Zip file will be starting with a * space followed by the newline characters. */ $zip->addDirectory("test"); $zip->addDirectoryContent("testData/test", "test"); return $zip->finalize();
$zip = new ZipStream("ZipStreamExample1.zip"); $zip->setComment("Example Zip file for Large file sets.\nCreated on " . date('l jS \\of F Y h:i:s A')); $zip->addFile("Hello World!\r\n", "Hello.txt"); $zip->openStream("big one3.txt"); $zip->addStreamData($chapter1 . "\n\n\n"); $zip->addStreamData($chapter1 . "\n\n\n"); $zip->addStreamData($chapter1 . "\n\n\n"); $zip->closeStream(); // For this test you need to create a large text file called "big one1.txt" if (file_exists("big one1.txt")) { $zip->addLargeFile("big one1.txt", "big one2a.txt"); $fhandle = fopen("big one1.txt", "rb"); $zip->addLargeFile($fhandle, "big one2b.txt"); fclose($fhandle); } $zip->addDirectory("Empty Dir"); //Dir test, using the stream option on $zip->addLargeFile $fileDir = './'; @($handle = opendir($fileDir)); if ($handle) { /* This is the correct way to loop over the directory. */ while (false !== ($file = readdir($handle))) { if ($file != '.' && $file != '..' && is_file($file)) { $zip->addLargeFile($fileDir . $file, "dirTest/" . $file, filectime($fileDir . $file)); } } } // Add a directory, first recursively, then the same directory, but without recursion. // Naturally this requires you to change the path to ../test to point to a directory of your own. $zip->addDirectory("recursiveDir/"); $zip->addDirectoryContent("../test", "recursiveDir/test");
} $i = 0; $filesString = ""; foreach ($frames as $frame) { $i++; $filesName = sprintf("%0" . ZM_EVENT_IMAGE_DIGITS . "d-capture.jpg", $i); $filesString .= "\nframes.push(\"events/" . $mid . "/" . $eid . "/" . $filesName . "\");"; $zip->addLargeFile($frame, "events/" . $mid . "/" . $eid . "/" . $filesName); } return $filesString; } if (isset($_REQUEST['exportevents'])) { require 'skins/' . $skin . '/includes/ZipStream.php'; if ($_REQUEST['exportevents'] === "single") { if (isset($_REQUEST['eid']) && ctype_digit($_REQUEST['eid'])) { $zip = new ZipStream("event-" . $_REQUEST['eid'] . ".zip"); $zip->addDirectory("events"); $zip->addDirectory("assets"); $filesString = addEventToZip($_REQUEST['eid'], $_REQUEST['mid'], $zip); $zip->addFile(file_get_contents("skins/{$skin}/views/assets/images/onerror.png"), "assets/playback-placeholder.png"); $playerFile = file_get_contents("skins/{$skin}/views/includes/standalone-event-player.html"); $playerFile = str_replace("###files###", $filesString, $playerFile); $zip->addFile($playerFile, "player.html"); return $zip->finalize(); } else { die("ERROR: Invalid event ID!"); } } else { die("ERROR: Invalid export option!"); } }