phpbar.de logo

Mailinglisten-Archive

AW: [php] ImageJPEG und große Dateien

AW: [php] ImageJPEG und große Dateien

Tim Hildebrandt TConnect at gmx.net
Fre Mar 12 10:21:23 CET 2004


> 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