Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Time limit upload i miniaturki
Forum PHP.pl > Forum > Przedszkole
broneq
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.
Pilsener
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?
broneq
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
Pilsener
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ć.
broneq
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
Lejto
Cytat

link nie działa, jakiś błąd
broneq
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
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.