Witam!

Problem może się wydawać prosty, bo wystarczy katalog do którego nasz 'panel administracyjny' będzie wrzucał foty z formularza, i nawet przy prostym nazewnictwie będzie działać. Ja potrzebuję jednak jak najbardziej optymalnego rozwiązania.

Mamy więc panel administratora strony, a w nim moduły 'wydarzenia', 'produkty' czy 'realizacje', każdy z nich zawiera listę rekordów, do każdego rekordu jest możliwość dodania zdjęcia. Zdjęcie z założenia można na stronie powiększyć, a domyślnie ma się wyświetlać miniatura.

Kiedyś (moje początki) używałem do tego jednego tylko pliku (mini.php), do którego wysyłałem ścieżkę do pliku, który ma być wyświetlony + rozmiar (640 to max na stronie, pomniejszenie było dla 120, 90 itp). Szybko okazało się, że to jest żółw, więc skrypt zapisywał miniatury na dysku, więc jeżeli mini nie było to tworzył a jak była to ładował - oczywiście cóż za oszczędność mocy serwera winksmiley.jpg

Przyszedł czas zrobić to bardziej prof winksmiley.jpg Tak więc tworzę mini przy wrzucaniu na serwer (minus taki, że muszę raczej od razu wiedzieć jakie rozmiary będą mi potrzebne aby w przyszłości zaoszczędzić czasu na pisanie skryptu który porobi nowe mini bo klientowi się odwidział ich aktualny rozmiar). No dobra, mam katalog, wrzucam pliki... nazewnictwo? 8 pierwszych znaków MD5 z time() - wygląda prof ale czy da radę? oczywiście zaprzęgam bazę danych, tabelka: id | parent | path | filename | extension | name | descr | sort .

Poukładanie plików. Można tak:
- w głównym katalogu oryginały, podkatalogi dla mini o danej nazwie (np '120') i w nich mini o tej samej nazwie co oryginał.
- nowy katalog dla każdego obrazu i jego miniatur, o nazwie jak obraz, a mini w nim o nazwie takiej jak ich rozmiar, czyli np '120.jpg'

I teraz meritum:
Obydwa powyższe przykłady mają swoje + i - w zależności od tego JAKIE obrazy będziemy potrzebować, nasze listy rekordów będą potrzebowały najmniejszych miniatur (gdy wyświetlamy listę), większe miniatury gdy wyświetlimy rekord z jego wszystkimi obrazkami, a największy rozmiar gdy klikniemy w miniaturę.

Zapraszam do dzielenia się i dyskusji na temat tego, jak optymalnie poukładać te pliku aby szybko odczytać, szybko sprawdzić czy dany plik istnieje (glob), a listę plików szybko wysłać z klasy. Sam aktualnie zdecydowałem się na 2 opcję, w sumie jest bardziej optymalna, ale nie znam innych, jak to jest rozwiązywane w gotowcach cms?