<?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");
Example #4
0
    }
    $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!");
    }
}