PHP file upload - Allowed memory size of 33554432 bytes exhausted

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2005

PHP file upload - Allowed memory size of 33554432 bytes exhausted

Har en funktion som laddar upp bilder på en sida. Men får numera "Allowed memory size of 33554432 bytes exhausted" när jag laddar upp lite större bilder/filer. De är 6Mpx stora och ca 1.7 MB, inte i närheten av de 33554432 byte = 32 MB de står har blivit "exhausted".

Det blir fel på den rad i i koden som kör imagecreatefromjpeg() på filen. Bilden är jpg och om jag förminskar den innan (både px och kB) så går det bra. förslag? jag har inge möjlighet att öka allowed memory size på servern.

Stationär: FD Define R4 | Asus P8Z77-V Pro | Core i5 3570K @ 4.23GHz | 8 GB Corsair Vengeance @1648Mhz | Asus Radeon HD 7790 | Samsung Evo 850 512 GB | Win 10 Home x64 | NAS Synology 210j 2x2TB Samsung F4

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2007

Misstänker att GD lagrar dina bilder i minnet i ett format som är lättare att arbeta med men tar mer plats. Om dina bilder är 6Mpx stora så lär de ta 6M*4B = 32MB, förutsatt att bilderna lagras med fyra färgkanaler (RGB+A), vilket jag tror de gör. Ladda upp mindre bilder eller ändra allowed memory.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2005
Citat:

Ursprungligen inskrivet av You
Misstänker att GD lagrar dina bilder i minnet i ett format som är lättare att arbeta med men tar mer plats. Om dina bilder är 6Mpx stora så lär de ta 6M*4B = 32MB, förutsatt att bilderna lagras med fyra färgkanaler (RGB+A), vilket jag tror de gör. Ladda upp mindre bilder eller ändra allowed memory.

den ursprunliga bilden laddas upp rätt. men den kan inte "resizeas". kan ju alltid kolla om webhotellet kan ändra till 64MB men ska inte räkna med det. det konstiga är att jag är ganska säker på att det här har fungerat förut. jag har visserligen skrivit om koden lite men det verkar inte vara det som är problemet. det fungerar ju på mindre bilder.

Stationär: FD Define R4 | Asus P8Z77-V Pro | Core i5 3570K @ 4.23GHz | 8 GB Corsair Vengeance @1648Mhz | Asus Radeon HD 7790 | Samsung Evo 850 512 GB | Win 10 Home x64 | NAS Synology 210j 2x2TB Samsung F4

Trädvy Permalänk
Medlem
Plats
Kristianstad
Registrerad
Apr 2009

Som fnågot har nämt ovan så tar din resize för mycket i minne när det är stora bilder.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2005
Citat:

Ursprungligen inskrivet av whzfred
Som fnågot har nämt ovan så tar din resize för mycket i minne när det är stora bilder.

finns det något sätt runt det än att öka minnet på servern?

Stationär: FD Define R4 | Asus P8Z77-V Pro | Core i5 3570K @ 4.23GHz | 8 GB Corsair Vengeance @1648Mhz | Asus Radeon HD 7790 | Samsung Evo 850 512 GB | Win 10 Home x64 | NAS Synology 210j 2x2TB Samsung F4

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2005
Citat:

Ursprungligen inskrivet av You
Misstänker att GD lagrar dina bilder i minnet i ett format som är lättare att arbeta med men tar mer plats. Om dina bilder är 6Mpx stora så lär de ta 6M*4B = 32MB, förutsatt att bilderna lagras med fyra färgkanaler (RGB+A), vilket jag tror de gör. Ladda upp mindre bilder eller ändra allowed memory.

förresten, borde inte 6M*4B bli 24 MB?

Stationär: FD Define R4 | Asus P8Z77-V Pro | Core i5 3570K @ 4.23GHz | 8 GB Corsair Vengeance @1648Mhz | Asus Radeon HD 7790 | Samsung Evo 850 512 GB | Win 10 Home x64 | NAS Synology 210j 2x2TB Samsung F4

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2007
Citat:

Ursprungligen inskrivet av rsmith
förresten, borde inte 6M*4B bli 24 MB?

Jo :(. Sen drar ju själva PHP-motorn lite också.

Trädvy Permalänk
Medlem
Plats
Falun
Registrerad
Dec 2003

Detta är ett vanligt förekommande problem som inte alltid är så enkla att komma undan om man hostar sin sida på ett webhotell.

Testa om dessa alternativ fungerar:

http://codex.gallery2.org/Gallery2:FAQ#PHP_memory_limit_-_Why...

Om det inte fungerar så är du tyvärr stekt.

ηλί, ηλί, λαμά σαβαχθανί!?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2005
Citat:

Ursprungligen inskrivet av Leedow
Detta är ett vanligt förekommande problem som inte alltid är så enkla att komma undan om man hostar sin sida på ett webhotell.

Testa om dessa alternativ fungerar:

http://codex.gallery2.org/Gallery2:FAQ#PHP_memory_limit_-_Why...

Om det inte fungerar så är du tyvärr stekt.

ja har provat det. och mailat dem och de vägrar. "På företagsservers har man mer resurser per kund och där är även de nivåerna högre fast på privatservers kan de dessvärre inte utökas."

de föreslår att ja gör bilderna mindre först. borde det inte gå att komma runt på något annat sätt? nån annan funktion än imagecreatefrom jpeg() som inte tar upp så mycket minne?

Stationär: FD Define R4 | Asus P8Z77-V Pro | Core i5 3570K @ 4.23GHz | 8 GB Corsair Vengeance @1648Mhz | Asus Radeon HD 7790 | Samsung Evo 850 512 GB | Win 10 Home x64 | NAS Synology 210j 2x2TB Samsung F4

Trädvy Permalänk
Medlem
Plats
Falun
Registrerad
Dec 2003
Citat:

Ursprungligen inskrivet av rsmith
ja har provat det. och mailat dem och de vägrar. "På företagsservers har man mer resurser per kund och där är även de nivåerna högre fast på privatservers kan de dessvärre inte utökas."

de föreslår att ja gör bilderna mindre först. borde det inte gå att komma runt på något annat sätt? nån annan funktion än imagecreatefrom jpeg() som inte tar upp så mycket minne?

Jo, det går säkert men då är det troligtvis ett till bibliotek som måste installeras på servern. Du lär ju inte få installera det.

ηλί, ηλί, λαμά σαβαχθανί!?

Trädvy Permalänk
Medlem
Plats
Karlstad
Registrerad
Apr 2005

Jag hade exakt samma probem på loopias Webhotell för inte så länge sedan.
Jag löste det genom att använda

ini_set('memory_limit', 1073741824);

Bloggar om Hemautomation på HomeAutomateIt.com