Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Allowed memory size of 12582912 bytes exhausted
Forum PHP.pl > Forum > Przedszkole
Pucy
Mam taki blad gdy chce zpaisac dosc 'duzy' plik na dysku...

Allowed memory size of 12582912 bytes exhausted (tried to allocate 49033 bytes)

Wszedzie gdzie bym nie patrzal, rozwiazaniem problemu jest ini_set('memory_limit','...');

probowalem localnie i pliku php.ini, restartowalem apache, ale nic z tego... czy ktos ma jakis pomysl jak ustrzec sie przed tym bledem?sad.gif
Darti
jeszcze jest
ini_set('upload_max_filesize','...');
Pucy
Hm sproboje, ale czy to ma znaczenie gdy ja po prostu tworze plik na serverze a nie uzywam funckji move_uploaded_file() itd...
Darti
aaa
jak chcesz tylko zapisać plik to memory_limit zwiększ (albo ustaw na -1 to nie będzie limitu)
Pucy
'-1' hmm no sproboje, dawalem 512M a plik przeciez 4 megowy;/ jak on to liczy? wiesz moze?
Darti
Problem pojawia się np. podczas używania biblioteki gd2, plik (np jpg) jest dekompresowany i dlatego zajmuje dużo więcej w pamięci niż na dysku.
Dlatego zanim umieszczę coś np w galerii to zmniejszam rozdzielczość do powiedzmy 800x600 i dopiero wrzucam na serwer.
Pucy
Em no tak, ale ja stwarzam zwykly plik txt, w ktorym zapisuje zwykla tresc, plik zajmuje ile zajmuje, ale na poprzednim serwerze nie bylo problemow, teraz przenioslem portal na dedyka, ale problem wyskoczyl i nie moge sie uporac/./

Dalem '-1' i nie dziala dalej.. . jakies nowe pomysly? Niby ten blad ciagnie z php... ale eh... no nie wiem, system?
koodlaty
Przeniosłem się niedawno na nowy serwer i mam identyczny problem. Wyświetlam stan magazynowy i jednocześnie tworzę z niego pdf-a. Nie wierzę bym przekroczył hojnie przydzielony limit pamięci...

Niestety dostaje identyczny komunikat. Skończyły mi się pomysły - na googlach, grupach - na nic jeszcze nie trafiłem. Podłączam się do pytania. Problem pojawił się tak jak u kolegi - po zmianie serwera (na nowszy)

Jakieś pomysły?
Pucy
koodlaty

Jakbys na cos wpadl to daj znac prosze... bo to ogromny problem dla mnie;/

Hm zauwazylem cos ciekawego... jak dalem phpinfo(); wywalilo mi miejsce z memory_limit, co ciekawe Local Value zostaje 12M podczas gdy zmieniam w php.ini i normlanie zmienia sie Master Value, moze ktos wie zz czego wynika ta roznica?

OK dziala:D
smarcz
Miałem coś podobnego przy kopiowaniu grafiki na serwer. Problem polegał na tym, że po przekopiowaniu grafiki na serwer - obrabiałem ją - zmieniałem rozdzielczość. Operacja taka pochłaniała pamięć po stronie serwera. Problem polegał nie na wadze pliku np.: 800 kb tylko na rozdzielczości. Biblioteka GD przetwarza każdy pixel obrazka - co pochłania pamięć. U mnie limit był 20 Mb. Wprowadziłem więc mnożnik do wykonywanych operacji. I tak np.: plik który zajmował 200 kb a miał rozdzielczość 2100x1700 przekraczał dostępną pamięć cache, a plik 800 kb o rozdzielczości 1600x1200 wykonywał się jak należy. Tak więc należy pomnożyć rozdzielczość x jakiś mnożnik aby określić limit operacji - jeżeli przekracza Twoją pamięć przerwać wykonywanie dalszej części skryptu lub wypisać odpowiedni komunikat - np.: przed zapisaniem części operacji do bazy MySQL - ten opis zmieszczałem na forum.

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.