Avatar billede Slettet bruger
02. september 2003 - 15:47 Der er 3 kommentarer og
1 løsning

Zip script får problemer (timeout?)

Hej!

Jeg benytter scriåtet herunder til at pakke billeder i en zip-fil, og det virker også med f.eks. 10 billeder.

Men hvis jeg har måske 300 billeder liggende, så går scriptet i stå.

Mit gæt er at det får timeout, men det kan jeg jo ikke rigtigt ændre, da det ikke er min egen server.

Nogen forslag?

include("zip.lib.php");

$zipfile = new zipfile();

$i = 0;
$path = $_SERVER["DOCUMENT_ROOT"] . "/test/";
$mapper = Array("varer/", "varer/thumbs");

foreach ($mapper as $mappe) {//Løb de specificerede mapper igennem

$zipfile -> add_dir($mappe);//Opret mapper i zip-fil

# Laver et array med filerne
$handle = opendir($path . $mappe);
    while (($fil = readdir($handle)) !== false) {
    if (($fil != "." && $fil != "..") && strstr($fil, ".")) {
    $filer[] = $fil;
    }
}

closedir($handle);

while($i < count($filer) && $filer[$i] != "") {
$fra = $path . $mappe . $filer[$i];

$fp = fopen($fra, "r");
$file = fread($fp, filesize($fra));
fclose($fp);

$til = $mappe . $filer[$i];
$zipfile -> add_file($file, $til);
$i++;
}

}

$fil_navn = "Fil-backup";
$dags_dato = date ("d-m-Y");

header("Content-disposition: attachment; filename=$fil_navn $dags_dato.zip");
header("Content-type: application/ms-download");
header("Pragma: no-cache");
header("Expires: 0");
echo $zipfile -> file();
Avatar billede roenving Novice
02. september 2003 - 16:02 #1
Mit gæt ville være, at serveren afbrød udførelsen af scriptet, fordi der bliver startet for mange tråde ...

For mig at se er det højst sandsynligt, at oprettelsen zip-entryet tager adskilligt længere tid end een tur igennem løkken for php-scriptet !-)
Avatar billede Slettet bruger
02. september 2003 - 22:11 #2
Hmmm...hva faen gør man så? :)
Avatar billede roenving Novice
02. september 2003 - 23:16 #3
Hvad med en forsinkelse, som 'nogenlunde' følger med en gennemsnitlig zipping ...

-- kender ikke php, men du må vel som i javascript kunne finde noget setTimeout('funktion()',millisekunder)

-- eller bare den dumme løkke for(i=0;i<1000000;i++);
Avatar billede Slettet bruger
20. september 2003 - 23:49 #4
øv...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester