"Out of memory" Fehler trotz höhrerem memory_limit

simusch

simusch

Aktives Mitglied
Thread Starter
Dabei seit
27.09.2004
Beiträge
2.030
Reaktionspunkte
219
Hallo zusammen

Ich habe ein komisches Problem mit einem PHP-Script:

Es sollen grosse Bilddateien (bis 20MB) hochgeladen werden können.

Das PHP-Script sollte nach dem Upload ein Vorschaubild erstellen mittels createImageFromJPEG()

Dabei erhalte ich aber ein Fehler

PHP:
Fatal error: Out of memory (allocated 33030144) (tried to allocate 3561 bytes) in .../functions.php on line 724

Ich habe bereits versucht, mittels ini_set den "memory_limit"-Wert drastisch zu erhöhen oder mit "-1" als unbeschränkt zu definieren. Dies alles ohne Erfolg...

Hat jemand einen Tipp, wie ich das Problem beheben könnte?

Besten Dank

Simu
 
in der php.ini hoch setzen und den apache neu starten?
 
und wenn man keinen Zugriff auf die php.ini hat? Zudem verändert ini_set() doch den Wert genau gleich?
 
Bei vielen Webhostern ist es nicht möglich mittels ini_set() den in der php.ini definierten Wert zu erhöhen.

Falls du also Webspace und keinen eigenen Server hast, frage am besten beim Hoster nach.
 
komisch ist, dass wenn ich mittels ini_set einen Wert definiere und danach ini_get anwende, ich den neuen Wert ausgegeben erhalte...
 
Naja, wenn Du einen shared Server hast (also keinen eigenen), dann gibt es schon sehr oft mehr oder weniger durchschaubare Restriktionen was Du machen kannst und was nicht. Ich habe beispielsweise einen Hoster in den USA, bei dem ich z.B. mit phpadmin keine Datenbanken anlegen kann, dafür gibt es ein separates Tool.
 
Aus der php.net Funktionsbeschreibung ist der Speicherverbrauch wie folgt:

Num bytes = Width * Height * Bytes per pixel * Overhead fudge factor
Where Bytes per pixel = Bit depth/8, or Bits per channel * Num channels / 8.

Du musst also kleinere Bilder passend zu Deinem Limit von 32 MB nutzen, wenn Du das Speicherlimit nicht erhöhen kannst (was bei 32 MB aber schon recht hoch ist, für einen normalen Webhosting-Vertrag)

Edit: Eine Lösung wäre, die Thumbnails vom Client berechnen zu lassen und dann auf dem Server speichern. Das geht per JavaScript oder Flash.
 
es ist wirklich zum verzweifeln :(

auch wenn ich die erwartete speicher-auslastung vorher berechne, klappt das irgendwie nicht...
Und wenn die Funktion createImageFromJPEG aufgrund "Out of Memory" abbricht, kann ich das auch nicht abfangen mittels PHP - Fatal Error stoppt halt alles...

hast du mir einen Tipp, nach was ich suchen muss, um mit JavaScript die Thumbnails zu erstellen? wurde noch nicht fündig (nur Scripts, die ein Bild kleiner anzeigen...)
 
hast du mir einen Tipp, nach was ich suchen muss, um mit JavaScript die Thumbnails zu erstellen? wurde noch nicht fündig (nur Scripts, die ein Bild kleiner anzeigen...)

Das macht fast jede JavaScript-Bildergalerie. Einfach mal nach "image gallery" + Framework der Wahl (jQuery, Mootools, …) suchen.
 
Nach einer erneuten intensiven Suche fand ich diverse Hinweise darauf, dass ein Client-Seitiges Skalieren nicht möglich sei...

Ich starte jetzt noch den Versuch, mal beim Hoster anzufragen, ob das memory_limit wirklich nicht zu erhöhen ist...

Gruss Simu
 
Zurück
Oben Unten