Fatalerror memory size

  • Bei meinem Thumbnailscript ist folgendes aufgetreten (Bei immer der selben Datei, ich hab noch eine andere Probiert, diese funktioniert.):

    (Die Datei heist: ktf_probe_16_1184191128.jpg zu betrachten (falls notwendig) hier: http://topfkuchration.de/galerie/ktf_probe_16_1184191128.jpg . Es könnte allerdings auch an dem Hochformat liegen, denn ein Querformatbild, welches mit der selben Kamera gemacht wurde und doppelt so groß ist (600kb) wurde ohne Probleme zu dem Thumbnail umgewandelt...)


    Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 6816 bytes) in /mnt/web2/42/19/51523819/htdocs/kopftuchration/KTF/admin/thumbnail.php on line 34


    Quellcode:

    <?
    function datei_endung ($dateiname)
    {
    $temp = (substr_count($dateiname, ".") > 0) ? explode(".", $dateiname) : "";
    $endung = $temp ? $temp[count($temp)-1] : "";
    $datei = $temp ? substr($dateiname, 0, strlen($dateiname) - strlen($endung) - 1) : $dateiname;
    $temp = "";
    $strlen = strlen($dateiname);
    return array("datei"=>$datei,"endung"=>$endung,"strlen"=>$strlen);
    }
    if ($_GET['th'] == 1)
    thumbnail($file);
    function thumbnail($quellbild) {

    // Hier die Breite eingeben
    $breit=150;

    $quellbild = $quellbild;
    $info = getimagesize("../galerie/".$quellbild);
    $breitalt = $info[0];if($breitalt == 0) $breitalt=1;
    $hochalt = $info[1];if($hochalt == 0) $hochalt=1;
    $hoch = ceil($hochalt*$breit/$breitalt);

    $quellbild = datei_endung($quellbild);
    switch($quellbild['endung'])
    {
    case "gif":
    $bildalt = imagecreatefromgif("../galerie/".$quellbild['datei'].".".$quellbild['endung']);
    break;
    case "GIF":
    $bildalt = imagecreatefromgif("../galerie/".$quellbild['datei'].".".$quellbild['endung']);
    break;
    case "jpg":
    ZEILE 34 $bildalt = imagecreatefromjpeg("../galerie/".$quellbild['datei'].".".$quellbild['endung']);
    break;
    case "png":
    $bildalt = imagecreatefrompng("../galerie/".$quellbild['datei'].".".$quellbild['endung']);
    break;
    case "PNG":
    $bildalt = imagecreatefrompng("../galerie/".$quellbild['datei'].".".$quellbild['endung']);
    break;
    case "jpeg":
    $bildalt = imagecreatefromjpeg("../galerie/".$quellbild['datei'].".".$quellbild['endung']);
    break;
    case "JPEG":
    $bildalt = imagecreatefromjpeg("../galerie/".$quellbild['datei'].".".$quellbild['endung']);
    break;
    case "JPG":
    $bildalt = imagecreatefromjpeg("../galerie/".$quellbild['datei'].".".$quellbild['endung']);
    break;
    }

    $bildneu = imagecreatetruecolor($breit,$hoch);
    imagecopyresampled($bildneu,$bildalt,0,0,0,0,$breit,$hoch,$breitalt,$hochalt);

    //header("Content-Type: image/jpeg");
    imagepng($bildneu,"../galerie/"."thumbnails/".$quellbild['datei']."_tn.png",100);

    imagedestroy($bildneu);
    imagedestroy($bildalt);
    return array(TRUE,$quellbild['datei']."_tn.png");
    }
    //thumbnail("galueb.png");
    //include("config.php");

    //if ($update) echo "ok"; else echo "falsch";
    ?>


    Vielleicht kann mir einer helfen?

  • So, dasproblem hab ich jetzt gelöst... ( ini_set("memory_limit","35M"); ) aber habe jetzt noch folgende Fehlermeldung:


    Fatal error: Maximum execution time of 30 seconds exceeded in /mnt/web2/42/19/51523819/htdocs/kopftuchration/KTF/admin/thumbnail.php on line 54

    Kann ich diese zeit auch erhöhen? weil ich will ja nich eine Datei, dann die nächste... sondern am besten gleich alle gleichzeitig hochladen (Das Script wurde so konstruiert)

  • Zitat

    Kann ich diese zeit auch erhöhen?


    Ja! Und bevor die Frage kommt, wie das geht: genauso wie memory_limit. Steht alles in der Doku!

  • Zitat

    Ich hab versucht memory_limit in der Doku zu suchen (zumindest auf einer Seite) wo ich sie zumindest nich gefunden habe.


    Ich hab jetzt auch nochmal geschaut und hab wieder nichts gefunden. Ich find ja nich mal memory_limit (dafür hatte ich gegoogelt). Und falls du es weist, kannst du es ja auch einfach schreiben. jetzt muss ich mir und du dir die mühe m,achen nochmal hier was zu schreiben (angenommen du wirst). Sorry, aber in der Hinsicht bist du mir irgendwie nicht sympatisch.


    So, ich denk, dass ich den Parameter gefunden habe: max_execution_time

    Hab ihn in der phpinfo() gefunden, habe einfach nach dem Wert 30 gesucht. nebenbei hab ich noch folgendes gefunden:

    post_max_size

    was hat es damit aufsich? Der wert liegt bei 8M