Mailinglisten-Archive |
> Hallo ihr Geeks! hallo Andi, hallo Liste, > Prinzipiell brauche ich eine Bildverkleinerung, was auch > prima funktioniert. Allerdings bekomme ich (meistens) bei > Bilddateien größer 600 kB einen 500er Serverfehler. > Das selbe Problem habe ich auch. Allerdings ist es *meiner Ansicht nach* auch erklärbar: Eigentlich ist jedes Bild, das für Web-Applikationen bereit gestellt wird, komprimiert. Bei der Generierung eines Bildes innerhalb von PHP wird ja über "imageCreateFromJPEG()" eine interne Referenz auf ein von PHP bereitgestelltes Bildformat erstellt. Um nun auf jedes Pixel zugreifen zu können, muß PHP das Bild entpacken, was bei einem 600kB Bild schnell mal ein wesentlich größeres Speicherergebnis zur Folge haben kann. Der Unterschied wird deutlich, wenn Du dasselbe Bild mal als unkomprimiertes TIF auf Deinem PC speicherst. Da jeder Prozess auf einem Webserver nur eine bestimmte maximale Speichermenge zur Verfügung hat, kann es durchaus sein, dass der laufende Prozess während des Entpackens des JPG-Bildes an sein Speicherlimit stößt, so dass PHP das Script abbricht. Hier hilft dann nur eines: Die Dateigröße über die nach dem Upload in der Variabel $_FILES mitgelieferte Größe auszulesen und noch vor der Verarbeitung im Script einen entspprechenden Fehlercode auszugeben. In der Regel benötigt man auch nicht mehr als 100 kB, um selbst große Bildgrößen für Webansichten abzudecken. Ich habe jedenfalls eine Sperre bei 300kB eingebaut, was für 99,8% der Kunden auch vollkommen reicht. Viele bemerken diese Grenze noch nicht einmal. Was ich nicht sagen kann ist, ob es eine elegantere Lösung dieses Problems gibt. Grüße Tim
php::bar PHP Wiki - Listenarchive