hallo,

ik probeer met php mijn fotoalbum in een zipje te krijgen maar ik weet niet hoe ik een hele map in mijn zip kan plaatsen.

ik heb het al geprobeerd met
<?
$zip->addFile($album); // $album is dan de map
?>
foutmeldingen? Beetje meer code? echo $album eens, kijk wat erin staat.
dit is de gehele code:

$album = "Mapje"; // hier dan de album naam (het mapje bestaat)

<?php
$zip = new ZipArchive;
$res = $zip->open('album_'.$album.'.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFile('readme_'.$album.'.txt', 'readme.txt');
$zip->addFile($album);

$zip->close();
header('Location: album_'.$album.'.zip');
} else {
echo 'Er is iets fout gegaam bij het maken van het downloadbare album.<br />Neem A.U.B. contact op met de webmaster.';
}
?>

als ik dit doe wordt er geen zip gemaakt maar haal ik die $zip->addFile($album); weg dan wordt er wel een zipje gemaakt, verder geen errors
Door in google in te typen: "zip dir php" kwam ik op deze site terecht.

Kan je daar iets mee?
ik had ook al gegoogled maar ik had gehoopt dat het met 1 regeltje code zou kunnen lukken omdat ik zoveel code een beetje "onhandig" vind
ik heb het met die zipclass geprobeerd maar dan krijg ik geen helemap in mijn zipje alleen dat hij een mapje maakt, ik wil dus dat een map inc bestanden in mijn zipje komt
vincent schreef op 14.12.2009 20:02
ik had ook al gegoogled maar ik had gehoopt dat het met 1 regeltje code zou kunnen lukken omdat ik zoveel code een beetje "onhandig" vind


Beetje pruts reden hé!
beetje onhandig... hallo, als het moet werken moet het goed zijn...
daarom heb ik het uiteindelijk ook geprobeerd maar het lukte niet
Lange stukken code is niet onhandig als het noodzakelijk is.

Ontopic, welke zipclass gebruik je?
hmm ik gebruik nu die van de link ik gebruik hem nu icm http://www.phphulp.nl/php/print/2/1698/0/scripts/ (deel er van) maar kijg nu niet alles in de dir, ze komen in de root van de zip:


<?php
$dir2backup         = $album;
    
// Setting dir to add to archive
$dirName = $dir2backup;

// Checking dir
if (!is_dir($dirName)) {
    throw new Exception('Directory ' . $dirName . ' does not exist');
}

// Getting realpath
$dirName = realpath($dirName);
if (substr($dirName, -1) != '/') {
    $dirName.= '/';
}



$dirStack = array($dirName);
//Find the index where the last dir starts
$cutFrom = strrpos(substr($dirName, 0, -1), '/');


while (!empty($dirStack)) {
    $currentDir = array_pop($dirStack);
    $filesToAdd = array();

    $dir = dir($currentDir);
    while (false !== ($node = $dir->read())) {
        if (($node == '..') || ($node == '.')) {
            continue;
        }
        if (is_dir($currentDir . $node)) {
            array_push($dirStack, $currentDir . $node . '/');
        }
        if (is_file($currentDir . $node)) {
            $filesToAdd[] = $node;
        }
    }
                                                 
    //$localDir = substr($currentDir, $cutFrom);
    $zip->addEmptyDir($album);
   
    foreach ($filesToAdd as $file) {
        $zip->addFile($currentDir . $file, $localDir . $file);
    }
}
?>


ik weet dat er nog wat onnodige dingen zittem maar die haal ik er wel uit als ik het voor elkaar heb, iemand die mij hiermee kan helpen?

Reageren