Hallo,
Ich bin beim FileUpload auf ein Problem gestoßen. Ich hab ein relativ großes Bild versucht hochzuladen und bekomme dabei diese Meldung:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 9876 bytes) in class.cContent.php on line 249
Zeile 249 sieht dabei so aus:
$b = imagecreatefromjpeg( $_FILES[‚pic‘][‚tmp_name‘] );
Da das Bild verkleinert werden muss, reicht es nicht, ein hochgeladenes Bild einfach in den entsprechenden Ordner zu kopieren. Ich hab mich im Internet informiert, dass die memory size der Einstellung memory_limit entspricht weiß ich, aber die is mit 32MB ja eh ganz ok, oder? Ich möchte nun verhindern, dass User zu große Bilder hochladen und damit diese Meldung gar nicht erst kriegen. Nur weiß ich nicht, wie ich ausrechnen kann, wieviel Platz so ein Bild im Speicher tatsächlich belegt. Google lieferte mir die Rechnung breite x höhe x farbtiefe. Wäre im Fall des Bildes, mit dem ich getestet habe:
2469 x 3508 x 24 = 207870048 und das is größer als 33554432
Gleichzeitig hab ich aber noch ein zweites Bild mit
1600 x 1448 x 24 = 55603200
was ja auch größer als 33554432 is. DAS Bild lässt sich aber ohne Fehlermeldung hochladen. Also nehme ich an, dass die Rechnung nicht stimmt. Wie berechne ich also, wieviel Platz ein Bild im Speicher beansprucht?
Danke im Voraus,
Chi