Jeps...
Jeg er selv ved at teste lidt med at pakke + 8 MB billeder på serveren. Her er hvad jeg har lavet indtil nu, det er dog med en anden klasse, nemlig den der hedder pclzip.lib.php som kan hentes fra
http://www.phpconcept.net/pclzip/Iøvrigt skal man lige huske at rette
define( 'PCLZIP_TEMPORARY_DIR', $_SERVER['DOCUMENT_ROOT'] );
til det rigtige, det bøvlede jeg med en hel dag :)
Her er min kode indtil nu:
<?
session_start();
include("pclzip.lib.php");
$zipnavn = "archive.zip";
$antal_ad_gangen = 10;
$mappe = "produkter/"; //server
$archive = new PclZip($_SERVER['DOCUMENT_ROOT'] . "/" . $zipnavn); //server
//$mappe = "varer/"; //localhost
//$archive = new PclZip($zipnavn); //localhost
if(isset($_REQUEST['side'])) {
$start = $_REQUEST['side'];
} else {
$_SESSION['filer'] = "";
@unlink($zipnavn);
$handle = opendir($mappe);
while (($fil = readdir($handle)) !== false) {
if (($fil != "." && $fil != "..")) {
if(is_dir($mappe . $fil)) {
$_SESSION['filer'][] = $mappe . $fil . "/";
} else {
$_SESSION['filer'][] = $mappe . $fil;
}
}
}
$start = 0;
}
$antal_billeder = count($_SESSION['filer']);
echo "Samlet antal billeder der skal pakkes: " . $antal_billeder . "<br>Pakkes nu:<br>";
$i = $start;
while($i < ($start+$antal_ad_gangen)) {
echo $_SESSION['filer'][$i] . "<br>";
$v_list = $archive->add($_SESSION['filer'][$i]);
if ($v_list == 0) {
die("Error : ".$archive->errorInfo(true));
}
$i++;
}
if($antal_billeder > ($start+$antal_ad_gangen-1)) {
$hvortil = ($start+$antal_ad_gangen);
} else {
$hvortil = $antal_billeder;
}
echo "(Pakker billede " . ($start +1) . " - " . $hvortil . ")<br>" . round((($hvortil) / $antal_billeder * 100)) . " % færdig";
if(($start+$antal_ad_gangen) < $antal_billeder) {
?>
<script type="text/javascript">
location.href='test4.php?side=<? echo ($start+$antal_ad_gangen);?>';
</script>
<?
} else {
echo "<br>Pakning lykkedes, du kan nu downloade den pakkede zip-fil her: <a href=\"" . $zipnavn . "\">". $zipnavn . "</a>";
}
?>