![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 4 Dołączył: 1.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przy dodawaniu zdjęcia mam taki błąd:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 5200 bytes) in D:\users\trudny\motocykl\o_czesci.php on line 136 Zwiększyłem ini_set() limit pamięci na około 50MB. Na lokalnym tego nie mam. Kod:
-------------------- 9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..." |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 25 Dołączył: 23.07.2004 Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj pobrać czy ini_set(); zadziałał poprzez ini_get('memory_limit'); Jeśli nie działa spróbuj w htaccess dodać php_value memory_limit 32M
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 220 Pomógł: 10 Dołączył: 23.08.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Może lepiej popracować nad optymalizacją skryptu.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 4 Dołączył: 1.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
No tak też myślałem, bo raz działa, raz nie.
vtuner masz coś konkretnego na myśli? -------------------- 9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..." |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 220 Pomógł: 10 Dołączył: 23.08.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Najpierw musiałbym znać przeznaczenie tego skryptu, żeby wiedzieć co jak pozmieniać.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 4 Dołączył: 1.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
radex_p nie pytam, co to, tylko jak :]
Skrypt dodaje zdjęcie do ogłoszenia. Jest ograniczenie do 500kB. Zapisuje je, następnie tworzy 2 miniaturki, no i to tyle. Jak widać po move_uploaded_file() wczytuje zdjęcie i zapisuje jeszcze raz przez imagecopyresampled, bo zauważyłem, że przez to zdjęcie ma mniejszą objętość. -------------------- 9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..." |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 220 Pomógł: 10 Dołączył: 23.08.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Wiadomo, że skrypt nie wyrabia się, bo za dużo jest tych funkcji tworzących i modyfikujących zdjęcia.
Ja bym zrobił tak: - wgrywam oryginalne zdjęcie - przy wyświetlaniu za pomocą odpowiedniej klasy tworzę na podstawie dostarczonego linku do zdjęcia miniaturkę (o szerokości lub wysokości podanej jako następny parametr, w zależności jak sobie zrobisz klasę. Trzeba pamiętać, że klasa powinna tworzyć proporcjonalne rozmiary miniaturki). Co prawda jest utrata na jakości zdjęcia (niewielka), ale nie jest ona tak zła jak problem z pojemnością pamięci. Myślę, że od tej strony powinieneś podejść do tego. Ten post edytował vtuner 28.02.2008, 20:42:49 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 240 Pomógł: 13 Dołączył: 1.06.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
- przy wyświetlaniu za pomocą odpowiedniej klasy tworzę na podstawie dostarczonego linku do zdjęcia miniaturkę (o szerokości lub wysokości podanej jako następny parametr, w zależności jak sobie zrobisz klasę. Trzeba pamiętać, że klasa powinna tworzyć proporcjonalne rozmiary miniaturki). Co prawda jest utrata na jakości zdjęcia (niewielka), ale nie jest ona tak zła jak problem z pojemnością pamięci. Nie jestem pewien czy dobrze Ciebie zrozumiałem - proponujesz autorowi aby nie tworzył miniaturki przy uploadzie tylko przy każdym wywołaniu zdjęcia? W każdej chwili kiedy miniaturka będzie potrzebna ma ją wtedy tworzyć? Jeśli tak to pomysł jest.... brrr... niedobry ![]() ![]() Co do problemu to na forum przewijał się x razy. Poza tym http://www.google.pl/search?q=+Allowed+memory+size+of Ten post edytował LonelyKnight 28.02.2008, 21:34:20 -------------------- Good programming is 99% sweat and 1% coffee.
Make it idiot proof and someone will make a better idiot... |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 4 Dołączył: 1.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
No co do tego tworzenia przy wyświetlaniu też nie jestem pewien, a w skrypcie raczej tylko jest to, co potrzebne... No chyba, że jakoś łatwiej można to zrobić.
LonelyKnight, jak szukałem to głównie piszą, żeby zwiększyć memory_limit, który już zwiększyłem. Na serwerze na którym jest błąd mam chyba 8 czy 16 MB ramu. Jest darmowy, docelowo będzie na płatnym, np. home.pl daje max 80MB, z tego, co piszą. Może wtedy problemu nie będzie? -------------------- 9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..." |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 240 Pomógł: 13 Dołączył: 1.06.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie powinno być. Operacje na obrazkach zabierają dużo pamięci a jeśli nie możesz zwiększyć dostępnej pamięci to zrobisz niewiele. Proponuję Ci poczekać do momentu aż przeniesiesz sie na nowy serwer. Jeśli problem będzie dalej istniał, chociaż w to wątpię, to będziesz mógł zacząć kombinować, teraz chyba nie ma sensu.
-------------------- Good programming is 99% sweat and 1% coffee.
Make it idiot proof and someone will make a better idiot... |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 4 Dołączył: 1.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
W takim razie dzięki
![]() ![]() -------------------- 9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..." |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Jak już kolega wspomniał ale niedopowiedział:
1) Wgrywasz plik do odpowiedniego katalogu, obcinając go jak należy i rekompresując 2) Na wyświetlanie miniaturek tworzysz wrappera 3) Gdy wrapper otrzyma zapytanie o miniaturke sprawdza w cache'u czy ją ma 4) Jeśli ją ma to wysyła 5) Jeśli nie ma to tworzy i zapisuje w cache'u a następnie wysyła do klienta Do tego daj ograniczenie by nikt nie mógł Ci wgrać zdjęcia o większym rozmiarze pliku niż jakiś ludzki rozmiar oraz od razu przed robieniem operacji sprawdzaj czy wymiary x, y są zgodne z jakimiś założeniami np. nie więcej niż v, w. I jakby to powiedział mój ulubiony aktor w ulubionym filmie: nie ma ch*** fujarki ![]() ![]() pozdr. ps: jeśli i to nie poskutkuje to zmień serwer bo ten Cię oszukuje ![]() ps2: a po ki diabeł robisz to:
Przecież to nic nie robi - w teorii zrobi rekompresje ale ... nie zwalniasz zasobu $image_name chociażby ... Dalej znowu tworzysz zasoby i ich nie zwalniasz ... Przepisz to od nowa i wrzuć tutaj a powiem Ci czy dobrze robisz czy nie - wybacz, że samemu nie przepiszę Ci teraz ale siedzę w pracy. pozdr. Ten post edytował Kocurro 29.02.2008, 11:12:17 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 4 Dołączył: 1.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
8,20,31,32,40,44,45 linie w których są usuwane zasoby, bo jeśli dobrze rozumiem chodzi o image_destroy()?
Co do ps2 to zdjęcie ma mniejszy rozmiar niż jak się tylko zapisze. (przynajmniej tak mi wychodziło) Mógłbyś mi przybliżyć wrapper i cache? -------------------- 9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..." |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 03:37 |