Bilderupload
Bernd
- php
Hallo,
ich bastele gerade an einem Imageupload in PHP.
Dazu werden ein oder mehrere Bilder mittels eines Formulars auf den Server geladen, dann werden die Bilder in 3 Formate verkleinert und 3 verschiedene Verzeichnisse(/preview, /big, /little) kopiert.
Danach wird das Originalbild gelöscht.
Das Problem ist, das bei einer oder mehreren Dateien die insgesamt die Dateigröße von ca. 450 kb überschreiten folgende Fehlermeldung kommt.
Fatal error: Allowed memory size of 12582912 bytes exhausted at (null):0 (tried to allocate 6400 bytes) in /pfadzudokumentroot/upload_b.php on line 255
Dort wird die Funktion ImageCreateFromJPEG angewandt.
Nun vermute ich, das nicht die Bilder zu groß sind, sondern das im Laufe der Funktionen die die Bilder verkleinern die gesamte Speichergröße die benötigt wird zu groß wird. Ist es irgendwie möglich den Speicher zwischen den Funktionen zu leeren?
Oder hat irgendjemand eine Idee woran es noch liegen könnte?
mfg
Bernd
hi,
Fatal error: Allowed memory size of 12582912 bytes exhausted at (null):0 (tried to allocate 6400 bytes) in /pfadzudokumentroot/upload_b.php on line 255
Dort wird die Funktion ImageCreateFromJPEG angewandt.
Nun vermute ich, das nicht die Bilder zu groß sind, sondern das im Laufe der Funktionen die die Bilder verkleinern die gesamte Speichergröße die benötigt wird zu groß wird. Ist es irgendwie möglich den Speicher zwischen den Funktionen zu leeren?
du kannst die erzeugten bildobjekte, nach dem du sie mit ImageJPEG ins dateisystem geschrieben hast, wieder "zerstören", so dass der von ihnen im RAM belegte speicherplatz wieder freigegeben wird:
http://www.php.net/manual/de/function.imagedestroy.php
gruss,
wahsaga
Hallo,
am Ende des Scripts lösche ich das temporäre Bild mit unlink().
Wenn ein Bild erzeugt wird und gespeichert wird in einem bestimmten Verzeichnis, wird dann der Speicher danach von dem Bild immer noch belegt, obwohl das Script vielleicht schon beim erstellen des nächsten Bildes ist?
mfg
Bernd
Problem gelöst, danke für die Hilfe.
mfg
Bernd
hi,
Problem gelöst, danke für die Hilfe.
sagst du bitte auch noch kurz, _wie_ - für's archiv?
danke!
gruss,
wahsaga
Hallo Bernd!
Das Problem ist, das bei einer oder mehreren Dateien die insgesamt die Dateigröße von ca. 450 kb überschreiten folgende Fehlermeldung kommt.
Fatal error: Allowed memory size of 12582912 bytes exhausted at (null):0 (tried to allocate 6400 bytes) in /pfadzudokumentroot/upload_b.php on line 255
Dort wird die Funktion ImageCreateFromJPEG angewandt.
Schau doch mal mit Hilfe von http://de3.php.net/manual/en/function.memory-get-usage.php wann wieviel Speicher verbraucht wird, vielleicht siehst Du ja dann, woran es liegen könnte.
Du kannst Dir auch mal http://de3.php.net/manual/en/function.shm-remove.php usw. anschauen, damit kann man wohl Speicher wieder freigeben.
MfG
Götz