Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Time limit upload i miniaturki, Problem z obejściem time limit
broneq
post 25.06.2008, 13:08:48
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 25.06.2008
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Witam,

Nie wiem czy dobrze, że wrzuciłem to do tego działu, aczkolwiek sądze, że nie jest to aż tak skomplikowana sprawa.

Napisałem system cms (opierając się o Codeigniter oraz EXTJS). Zaletą tego systemu jest jeden kontener mediów (zdjęć) z którego podpina się zdjęcia w odpowiednie miejsca (np. artykuł na liście, obrazek wizerunkowy, baner itp). Żeby ułatwić życie userom postanowiłem każde wgrane zdjęcie skalować odrazu do wszystkich wymaganych rozmiarów, a użytkownika nie będzie już nic więcej obchodzić - system sam będzie wiedział w jakim module jaki rozmiar ma użyć. Takich rozmiarów jest zazwyczaj 5.

Wszystko było fajnie dopuki admin nie zmienił time_limit do 15s i za chiny nie chce tego zmienić. Oczywiście wszystkie funkcje do indywidalnej zmiany zablokował, więc jestem skazany na te 15s.

Myślałem aby każdy "resize" robić oddzielnym wywołaniem skryptu. Czyli dla każdego rozmiaru wywoływałbym oddzielny plik PHP, ale wywołania curl, readfile są liczone do działania skryptu. (kiedyś się tak dało, był to bug w php z tego co wyczytałem w inecie).

Inny patent to przekierowywanie do następnego skryptu przez header(), aczkolwiek upload jest realizowany poprzez ajax i header przeładuje całą aplikację. (podobmny uploader jaki używam jest pod adresem: http://extjs.com/learn/Extension:UploadForm)

Cron raczej odpada, ze względu na dość mozolną instalację tego rozwiązania przy każdym wdrożeniu. Tym bardziej że na zdjęcia będzie trzeba czekać, a to z punktu widzenia usability jest nie do przyjęcia.

Mam nadzieje, że ktoś zna jakieś dobre rozwiązanie - nie chce zmieniać hostingu.
Go to the top of the page
+Quote Post
Pilsener
post 25.06.2008, 13:19:12
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


1. Na wgranie i trzaśnięcie 5 miniaturek 15 sekund nie wystarcza? Może masz jakiś błąd?

2.
Cytat
Żeby ułatwić życie userom postanowiłem każde wgrane zdjęcie skalować odrazu do wszystkich wymaganych rozmiarów,
- może skalować tylko wtedy, kiedy zajdzie potrzeba użycia danego rozmiaru?
Go to the top of the page
+Quote Post
broneq
post 25.06.2008, 13:36:12
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 25.06.2008
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Cytat(Pilsener @ 25.06.2008, 14:19:12 ) *
1. Na wgranie i trzaśnięcie 5 miniaturek 15 sekund nie wystarcza? Może masz jakiś błąd?

Jeżeli zdjęcie ma 200kb to jest ok, jak klient wgra z cyfrówki zdjęcie 1,5mb to już nie...
Z wiadomych względów nie mogę ich zmusić do obróbki zdjęć w PS smile.gif

Cytat(Pilsener @ 25.06.2008, 14:19:12 ) *
2. - może skalować tylko wtedy, kiedy zajdzie potrzeba użycia danego rozmiaru?

Myślałem o takim rozwiązaniu, aczkolwiek aplikacja byłaby o wiele cięższa do skonfigurowania - a na prostocie wdrożenia też mi zależy, bo nie ja później wdrażam cms'a.

Wyobraź sobie ile by musiało być zmiennych konfiguracyjnych:
artykul miniaturka - rozmiar
artykul pelny - brak
artykul news - rozmiar
naglowek strony - rozmiar
galeria lista - rozmiar
i tak dalej...
w samym htmlu tez trzeba by bylo uzywac tych zmiennych z tablicy.

w tym momencie wystarczy ze sie poda w img sciezke do uploads/800x600/{file} co jest o wiele łatwiejsze.

Co więcej wiadomo, że klienci marudzą i zdażały się sytuacje że po wgraniu wszystkich materiałów do kotenera, klient chciał zamienić rozmiary (np zdjęcie było zcroppowane), co nam praktycznie nie sprawia problemu o ile mamy już podobny rozmiar - a zazwyczaj mamy.

A na koniec to rozwiązanie zmienia filozofie działania systemu, co wiąże się z dużym nakładem czasu smile.gif
Go to the top of the page
+Quote Post
Pilsener
post 25.06.2008, 13:57:31
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


No tak, zapomniałem, że dziś fotki bywają duże smile.gif
Cytat
Wyobraź sobie ile by musiało być zmiennych konfiguracyjnych:
artykul miniaturka - rozmiar
artykul pelny - brak
artykul news - rozmiar
- nie wiem czy dobrze rozumiem, ale chcesz mieć 5 rozmiarów, tak? No to na początek masz tylko rozmiar nr 1. Kiedy ktoś dodaje artykuł i chce np. rozmiar 3 to nic się nie zmienia. Natomiast silnik sprawdza (pewnie w standardzie), czy fotka o rozmiarze 3 jest. Jak nie ma, to jest tworzona - nie wydaje mi się, aby to ingerowało mocno w architekturę systemu.

Cytat
w tym momencie wystarczy ze sie poda w img sciezke do uploads/800x600/{file}
- i tu by było tak samo, tylko trzeba sprawdzać, czy ta fotka istnieje i w razie konieczności ją stworzyć.
Go to the top of the page
+Quote Post
broneq
post 25.06.2008, 14:35:28
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 25.06.2008
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Tak masz rację, tylko zapomniałeś o ostatnim punkcie smile.gif

Całość panelu jest zrobiona w javascript i bym musiał przy każdej operacji dodania zdjęcia np: do conentu robić wywołania ajaxowe odnośnie zdjęć - co daje dużo pracy do wprowadzenia mechanizmu.

Tymbardziej że moduły sągenerowane na podstawie pliku konfiguracyjnego, np:
  1. <?php
  2. $configuration=new modules('configuration','Konfiguracja','configuration','grid',true);
  3. $configuration->addField('id','integer',6,true,false);
  4. $configuration->addList('id','ID','',true,'');
  5. $configuration->addField('opis','varchar',100,false,false);
  6. $configuration->addList('opis','opis','',true,200);
  7. $configuration->addField('var','varchar',100,false,'FULLTEXT');
  8. $configuration->addField('value','blob',0,false,false);
  9. $configuration->addForm('value','wartość','choose',false);
  10. $configuration->addList('value','wartość','',true,300);
  11. $configuration->addField('type','varchar',20,false,false);
  12. //$configuration->addForm('opis','opis','text',true);
  13. $configuration->addOption('edytuj','javascript:openUrl(''.$this->config['base_url'].$this->config['index_page'].'/panel/grid_edit/configuration/[id]');');
  14. $configuration->allow_add=false;
  15. $config['cms']['mods'][$configuration->title]=$configuration;
  16. ?>


Zapraszam do obejrzenia
http://projects.web24.com.pl/cms/ad.php/

admin/ppp123

PS. pod FF nie działa oznaczanie kodu PHP z edytora

Ten post edytował broneq 25.06.2008, 14:36:30
Go to the top of the page
+Quote Post
Lejto
post 25.06.2008, 14:37:33
Post #6





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

Ostrzeżenie: (0%)
-----


Cytat

link nie działa, jakiś błąd


--------------------
Go to the top of the page
+Quote Post
broneq
post 25.06.2008, 14:46:06
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 25.06.2008
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Ups sorry, front nie jest podpiety, poniżej poprawny adres. Login i hasło admin/ppp123

http://projects.web24.com.pl/cms/ad.php/panel/

Myślę nad rozwiązaniem już pół dnia i lipa tongue.gif

Ten post edytował broneq 25.06.2008, 15:44:43
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 17:22