Posted: 22.06.2004 10:48 Post subject: php upload - memory exhausted
imam problema kod uploada slika....
apache error.log kaze:
Code:
[Tue Jun 22 11:31:22 2004] [error] PHP Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 7168 bytes) in .../public_html/upload/uploader.php on line 49
49 linija je
Code:
ImageCreateFromJPEG ($imgfile);
uploadam 4 slike ukupne velicine 1,21 Mb
kada probam s manjim slikama (cca 200k), sve je u redu
MAX_FILE_SIZE u form je 16M, a phpinfo(); kaze da je post_max_size=8M, memory_limit=16M, upload_max_filesize=10M
any ideas?
_________________ I hate to advocate drugs, alcohol, violence, or insanity to anyone, but they've always worked for me.
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
Posted: 22.06.2004 11:35 Post subject:
From the top of my head, mozda nakon sto kreiras slike ne oslobadjas vec alociranu memoriju, a php to ne napravi iz nekog razloga automatski, pa ti se kompletan buffer nakrca? Trebalo bi vidjeti ostatak koda ako je to slucaj, iako sumnjam...
Takodjer, moguce je da je jpg slika zeznuta, da joj fali EOI (end of image), evo funkcija iz php manual notesa kojom mozes provjeriti:
Code:
// this may help to fix the error
function check_jpeg($f, $fix=false ){
# [070203]
# check for jpeg file header and footer - also try to fix it
if ( false !== (@$fd = fopen($f, 'r+b' )) ){
if ( fread($fd,2)==chr(255).chr(216) ){
fseek ( $fd, -2, SEEK_END );
if ( fread($fd,2)==chr(255).chr(217) ){
fclose($fd);
return true;
}else{
if ( $fix && fwrite($fd,chr(255).chr(217)) ){return true;}
fclose($fd);
return false;
}
}else{fclose($fd); return false;}
}else{
return false;
}
}
Takodjer, mozda je jpg u cmyku? Koliko se sjecam, zadnje kad sam radio sa gd-om, nije podrzavao jpegove u cmyku.
Jos jedna mogucnost, iako stvarno far fetched, ali mi trenutno imamo problem sa slicnim simptomima na jednom siteu, sve slike do 500kb rade ko podmazane, ali sve iznad ne prolazi - a pristup apache error_log-u nazalost nemamo i cekamo srijedu da ga mozda dobijemo... mozda je sistemski tmp dir u koji ide slika nakon uploada limitiran na fileove odredjene velicine, pa sistem zabrani staviti file unutra, a php odna ne moze do njega i baci error, jer alocira memoriju unutar loopa nekog - nemam pojma, lupam bezveze
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
Posted: 22.06.2004 14:09 Post subject:
Rado bih ti pomogao, ali ne znam da li mozes vidjet ogranicenje na tmp-u.
Jesi pokusao dignut memory_limit u php.ini-u na 32MB? Mozda ti to rijesi problem?
Koju verziju php-a koristis? Mozes mi mailat source i te 4 slike, pa da probam reproducirati problem kod sebe, mozda i meni pojede previse memorije? Zipni sve i mailaj na zytzagoo-at-mi3dot.org ako hoces...
Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
Posted: 22.06.2004 14:24 Post subject:
budha wrote:
nemam ovlasti za to... hosting mi je na serveru jednog providera
Mozes pokusati sa ini_set() funkcijom podesiti memory_limit na vise od defaulta prilikom pokretanja svoje skripte, ovisi jel to dozvoljeno na kod providera... http://hr.php.net/ini_set
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum