Freitag, kurz vor Feierabend und ein guter Kunde meldet, dass beim Webupdate seines ERP-Systems Fehler auftreten. Nach kurzer Analyse stellt sich folgender PHP5-Fehler bzw. Warnung heraus:
„imagecreatefromjpeg() recoverable error: Premature end of JPEG file“ oder zu deutsch: in der Funktion imagecreatefromjpeg()
wird ein JPEG-Bild eingelesen, das eine Warnung auswirft, weil wohl ein anderes Dateiende erwartet wird.
Nach kurzer Recherche bin ich auf Probleme in Zusammenhang mit der Bilderbibliothek GD2 und PHP5, die bis in das Jahr 2008 zurückreichen, gestoßen.
Verschiedene Kameras als auch Fotoprogramme speichern die JPEG. bzw. JPG-Bilder nicht so, wie GD2 diese gerne hätte. Hier die Lösung für verschiedene PHP Versionen:
php 4: Keine Anpassung erforderlich, alles sollte laufen
php 5.0 – 5.1.2: Führe ein Upgrade auf die letzte php 5-Version durch
php 5.1.3 – Aktuelle: = Setze folgende Einstellung in deiner PHP-Datei bevor die Funktion magecreatefromjpeg()
aufgerufen wird:
ini_set('gd.jpeg_ignore_warning', TRUE);
Nach dieser Änderung wird GD2 diesen Fehler ignorieren und auch ein nicht erwartungsgemäßes Ende der Datei hinnehmen.
Damit sollte der Fehler „imagecreatefromjpeg() recoverable error: Premature end of JPEG file“ gelöst sein!