[PHP] Allowed memory size of X bytes exhausted

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Hapablap, 1. Juni 2009 .

Schlagworte:
  1. 1. Juni 2009
    Allowed memory size of X bytes exhausted

    Hi,

    Ich hab auf meiner Seite ein kleines Problem: Undzwar ermögliche ich es Benutzern, Bilder hochzuladen. Dabei wird erstmal das eigentlich Bild verkleinert, falls es größer / breiter 800x600px ist. Außerdem werden zwei Thumbs erstellt.
    Jetzt kommt beim Versuch online ein Bild, das 880kb groß ist, hochzuladen, beim Internet Explorer meine Fehlermeldung, dass das Bild nicht im jpg-Format ist. Mit Firefox funktioniert das ganze komischerweise. Auf meinem XAMPP kommt beim IE wieder die Fehlermeldung, dass das Bild nicht im jpg-Format ist, jedoch beim Firefox:

    Line 34:

    PHP:
             private function  createThumbnail ( $dateiname )
            {
                
    $pfad         "uploads/" ;
                
    $tnpfad         $pfad  "thumb/" ;
                
    $size         GetImageSize ( $pfad  $dateiname );
                
    $breite         $size [ 0 ];
                
    $hoehe         $size [ 1 ]; 

                
    $neueBreite     300 ;
                
    $neueHoehe     intval ( $hoehe * $neueBreite / $breite );

    /* Zeile 34 */  $altesBild     ImageCreateFromJPEG ( $pfad  $dateiname );
                
    $neuesBild     imagecreatetruecolor ( $neueBreite , $neueHoehe );
                
                
    imageCopyResized ( $neuesBild , $altesBild , 0 , 0 , 0 , 0 , $neueBreite , $neueHoehe , $breite , $hoehe );
                
    ImageJPEG ( $neuesBild , $tnpfad . $dateiname );
            }
    Kann mir jemand weiter helfen? Ich habe gelesen, dass es mit der Scriptausführzeit zusammenhängt.
    Danke schon mal,
    Hapablap
     
  2. 1. Juni 2009
    AW: Allowed memory size of X bytes exhausted

    du musst das richtige bildformat wählen. nicht jedes bild ist ein JPG.
    zudem verbraucht die gblib nen haufen speicher, welchen du per hand wieder freigeben musst.

    PHP: getimagesize - Manual -> rückgabewert auswerten (bildtyp)
    PHP: imagedestroy - Manual
     
  3. 2. Juni 2009
    AW: Allowed memory size of X bytes exhausted

    Dankeschön!
    Ich hab herausgefunden, dass es noch einen weiteren Grund für den Fehler gab:
    Ich frage ab, ob das Bild JPG ist, indem ich das FILE-Array abfrag, ob type = image/jpeg ist.
    Hat bisher gut funktioniert, nur wird komischerweise beim IE type = image/pjpeg angegeben, was auch immer damit gemeint ist. Hab mich jetzt auch nicht weiter informiert.

    Gibt es eigentlich eine gute Methode, um die Bilder nicht nur auf JPEG zu beschränken? Da ich ja die Methode ImageCreateFromJPEG verwende. Müsste ich da für jeden Filetyp eine Methode schreiben? Oder gibts da eine simplere Lösung?

    Auf jeden Fall vielen Dank für die Hilfe, zum Glück klappts jetzt
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.