Avatar billede Slettet bruger
28. januar 2004 - 16:32 Der er 1 løsning

Lidt hjælp til brug af klasser og instanser af samme

Hej!

Jeg har en del kode som skal pakke en bunke billeder til en zip-fil.

Eftersom det tit går ud over max execution time har jeg valgt at tage dem 5 ad gangen.

Nedenstående script giver mig fejlen

"Fatal error: Call to a member function on a non-object in D:\HTML\test4.php on line 35"

og det er vel forståeligt, da jeg opretter instansen i det første kald, og når jeg så opdaterer siden er den vel ikke tilgængelig mere.

Mit spørgsmål er så om jeg på en eller anden måde kan bære denne instans med mig til de næste sider?

Det er linierne med $archive = new PclZip, $archive->create og $archive->add der er vigtige.

Her er min kode:

<?
session_start();
sleep(1);
include("pclzip.lib.php");

if(isset($_REQUEST['side'])) {
$start = $_REQUEST['side'];
} else {
$_SESSION['filer'] = "";
//Det er første gang skidtet køres, så skal billederne læses ind i et array (session)
$mappe = "varer/";
$archive = new PclZip("archive.zip");

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

$archive->create($_SESSION['filer'][0]);
$start = 0;
}

$antal_billeder = count($_SESSION['filer']); //Antal billeder der samlet skal pakkes
$antal_ad_gangen = 5; //Hvor mange skal der pakkes pr kald

echo "Samlet antal billeder der skal pakkes: " . $antal_billeder . "<br>";

echo "Pakkes:<br>";
$i = $start;
while($i < $start+$antal_ad_gangen) {
echo $_SESSION['filer'][$i] . "<br>";
$archive->add($_SESSION['filer'][$start]);
$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>";
echo round((($start+$antal_ad_gangen) / $antal_billeder * 100)) . " % færdig";
flush(); //Har den overhovedet noget formål her?
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>Afsendelse lykkedes";
}
?>
Avatar billede Slettet bruger
28. januar 2004 - 16:39 #1
Hmmm, det lader til at virke hvis jeg kopierer $archive = new PclZip("archive.zip"); længere ned :)
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