Autor | Zpráva | ||
---|---|---|---|
Mufna Profil |
#1 · Zasláno: 25. 4. 2008, 19:30:43
Zdravím Vás. Při pokusu nahrát fotky vlastním skriptem jsem obdržel tuto hlášku:
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 6400 bytes) in /storage/www1/5/site40865/wwwroot/upload_multi.php on line 130 Ř. 130: $dst = ImageCreateTrueColor($width,$height); Obrázky měly 1600x1200 px, formát JPG, a nahráváno bylo celkem 8 obrázků přes multiuploadovací formulář. Když jsem je zmenšil na 800x600, šlo už všechno nahrát v pohodě. Jinak datový limit nebyl překročen ani v prvním případě (je přímo ve skriptu nastaven na 0,5 MB) - původní obrázky měly cca. 300-450 kb, zmenšené mají 150-250 kb. Již jsem přes svůj formulář a skript nahrával obrázky vícekrát, ale toto se mi stalo poprvé. Nevíte někdo, čím to mohlo být ? Že by těmi rozměry 1600x1200 px ? Ale proč ? |
||
keeehi Profil * |
#2 · Zasláno: 26. 4. 2008, 10:23:28
Allowed memory size of 16777216 bytes exhausted -> překlad: povolená velikost paměťi 16777216 bytů byla plně obsazená.
takže to bude asi objemovou velikostí |
||
bukaj Profil |
#3 · Zasláno: 26. 4. 2008, 10:44:35
Mufna
Jinak datový limit nebyl překročen ani v prvním případě (je přímo ve skriptu nastaven na 0,5 MB) - původní obrázky měly cca. 300-450 kb, zmenšené mají 150-250 kb. Datový limit pro POST data možná ne, ale pro alokovanou paměť serveru (počítače) ano. Musíš brát v úvahu, že JPEG komprimuje obrázek, co to jde, ale GD knihovna nemůže pracovat s komprimovanou podobou, proto si musí alokovat více (o hodně více) paměti. Což dokazuje i to, že při zmenšení rozměrů limit překročen nebyl. Podíval bych se, být tebou, jestli skript uvolňuje všechny obrázky správně a neplýtvá tak pamětí. Pak jedině pomůže zvednout memory_limit. |
||
nightfish Profil |
#4 · Zasláno: 26. 4. 2008, 10:51:43
mohlo by pomoct použít imagedestroy, jakmile s obrázkem přestaneš pracovat (tzn. asi po nějakém imagejpeg, imagepng, ...)
konkrétněji to bez zdrojového kódu skriptu nepůjde |
||
Časová prodleva: 3 dny
|
|||
Mufna Profil |
#5 · Zasláno: 29. 4. 2008, 01:14:08
nightfish
imagedestroy() používám - skript mi vytváří i 2 zmenšené náhledy (cca. 160x120 a 90x70) - používám to na konci skriptu i na ně. Tzn. ImageDestroy($src); ImageDestroy($dst); ImageDestroy($dst2); bukaj Podíval bych se, být tebou, jestli skript uvolňuje všechny obrázky správně a neplýtvá tak pamětí Myslel si tím to samé, co nightfish - tzn. imagedestroy() ? Skript pracuje s cyklem foreach, takže (jestli to správně chápu) projede jeden obrázek, pak další atd. Osobně (neříkám, že tomu buhvíjak rozumím) si myslím, že to mohl způsobovat jen jeden konkrétní obrázek. |
||
Časová prodleva: 16 let
|
0