Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: usuwanie jpg rownoczesnie z foldera i bazy danych mysql
Forum PHP.pl > Forum > PHP
elvispk
Hej wszystkim ..
Jestem nowy na forum wiec prosze o wyrozumialosc, Na poczatek opis problemu. Napisalem sobie galerie w jquery,css,html. Wyglada to dosyc fajnie i chce dodac troche funkcjonalnosci, chodzi mi o to aby po dodaniu jpg do foldera ow jpg dodawal sie do bazy mysql i w miedzy czasie tworzyla sie od razu thumb i dodawala w odpowiednie miejsce do html, to pierwsza czesc i takie cos juz mam, natomiast teraz moj problem, w jaki sposob napisac cos takiego zeby po wyzucenu jpg z wczesniej wspomnianego foldera/u ten sam jpg usuwal sie tez z bazy danych mysql .. moj pomysl: zliczyc zdjecia przed refresh strony, zliczyc wczytane po refresh po czym wywolac funkcje ktora bedzie porownywala zdjecia przed wywolaniem z tymi po i usuwala tylko te ktorych nie ma w ktorejs z tablic (przykladowo), no i na koniec samo usuniecie z bazy. To tylko pomysl, natomiast nie mampojecia jak go zrealizowac. W php dopiero sie zaglebiam wiec na pewno nie bede od razu blyszczal smile.gif czekam na opinie i jak najlepiej to napisac .. czytalem troche o sesjach i coocies ale nie jestem pewnien czy sama idea jest trafiona czy dobrze mysle i czy da sie wogole takie cos napisac w php-e .. sorry za bledy i z gory dzieki za odpowiedzi . pozdroweinia
markonix
W tego typu galeriach zarządzanie zwykle się opiera o panel gdzie dodaje on zdjęcie (ftp) oraz dodaje do bazy odpowiedzi wpis.
Raczej nie stosuje się metody wrzucania do folderu - jeśli już musisz to po prostu musisz listować zawartość i robić porównanie plik -> baza i podejmować odpowiednie kroki.
Nie wiem jakie tu zastosowanie mają wspomniane ciastka i sesje.
elvispk
Hej dzieki za odpowiedzc .. nigdy nie musialem czegos takiego robic wczesniej a teraz musze bo uzytkownik chce zeby funkcjonalnosc galerii byla maksymalnie prosta, czytaj wrzuc wszystko do folderu a reszta ma byc wyswietlona na stronie www. Maksymalna prostota. Myslalem o tym zeby porownywac zdjecia z golderu z wpisami w bazie tylko czy to nie obnizy szybkosci dzialania galerii ? mysle ze tak ale moge z tym zyc a nic nie zaszkodzispytac czy nie da sie tego zrobic jakos inaczej .. ale jeszcze raz dzieki za odpowiedz i pozdrowienia .. jak ktos ma jakis inny pomysl to dajcie znac

hej jeszcze jedno pytanie z zupelnie innej beczki .. czy mozna w php-ie dodac znaczniki html-owe w kilku divach zaleznie od warunku ? przykladowo jesli sciezka do pliku jest jakas1 to dodaj <img> do div1 jesli jakas2 to dodaj <img> do div2 .. pozdroweinia
nekomata
Cytat
hej jeszcze jedno pytanie z zupelnie innej beczki .. czy mozna w php-ie dodac znaczniki html-owe w kilku divach zaleznie od warunku ? przykladowo jesli sciezka do pliku jest jakas1 to dodaj <img> do div1 jesli jakas2 to dodaj <img> do div2 .. pozdroweinia
Mi to pasuje pod http://php.net/manual/en/book.dom.php Co do głównego problemu , czemu nie zrobisz sobie np takiej tabeli :
id | nazwa | header (jpg png itd) |img | thumb | co_tam_jeszcze_potrzebujesz(np. rozdzielczosc , opis itd)
I wszystko w mysql trzymać ?(Tylko nie rób 'select *' wtedy tongue.gif ) , a obrazki byś dodawał w ten sposób :
folder -> sprawdza czy są jakieś pliki -> jeśli są bierze -> tworzy thumba -> usuwa plik z folderu -> wrzuca do mysql .(wiadomo jak ktoś wrzuci 50 HD zdjęć to troche zajmie... jakieś 2 minuty może , więc pamiętaj o set_time_limit).
link do obrazków np. jako nice url'e -> plik php -> pobiera z bazy kolumnę , zależnie czy normalny czy thumb -> nadaję header -> echo'uje obrazek .

Tyle z moich podpowiedzi , trochę śpiący jestem więc trudne do zrozumienia może być .
elvispk
Hej .. dzieki za odpowiedz .. na pewno twoje rady sie przydadza .. tez na poczatku wyszedlem z takiego zalozenia zeby wszystko robic na bazie tyle tylko ze tak jak napisales problem bedzie zapewne wtedy gdy ktos wrzuci do folderu z 1000 obrazkow wysokiej rozdzielczosci ale moze dam jakies limity smile.gif myslalem ze jest jakis troche inny sposob na zaimplementowanie tego typu rzeczy (czytaj szybszy)smile.gif no ale nie mozna miec wszystkiego .. dzieki jeszcze raz i zabieram sie dopisania .. ewentualnie jak ktos ma jeszcze inny pomysl to bardzo prosze o rade .. dzieki jeszcze raz
CuteOne
Najefektywniejszym sposobem było by sprawdzanie co jakiś czas(nie co odświeżenie strony) np. 5min czy pliki z folderu zgadzają się z tymi w bazie. Podam ci przykład z plikiem dzięki, któremu będziesz w stanie sprawdzić czy upłyneło już te 5min.
  1. $timerFile = 'timer.txt'; // nazwa pliku kontrolującego
  2. $toRefresh = 300; // co ile ma się odbywać sprawdzanie - 300sek = 5min
  3.  
  4. if(file_exists($timerFile)) {
  5.  
  6. if(filemtime($timerFile) + $toRefresh <= time()) {
  7.  
  8. // kod sprawdzający czy pliki z folderu są identyczne z tymi z bazy
  9. // a na jego końcu dodajesz update pliku kontrolującego odświeżanie ;)
  10. unlink($timerFile); //usuwamy plik
  11. $handler = fopen($timerFile, 'a+'); // tworzymy nowy plik
  12. fclose($hadler);
  13. }
  14. }
  15. else {
  16.  
  17. $handler = fopen($timerFile, 'a+'); // tworzymy plik
  18. fclose($hadler);
  19. }


Teraz jeżeli ktoś odświeży stronę a nie minęło 5 min od ostatniego sprawdzania folderu nic się nie stanie smile.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.