Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [wolontariat]wczytanie nazw plików i zapisanie do bazy
Forum PHP.pl > Inne > Giełda ofert > Poszukuję
projektyKJR
Witam

Potrzebuje skrypt który z określonego folderu wczytuje nazwy plików, zapisuje je do bazy mysql, jeżeli pokaze się nowy plik wykonuje kolejny skrypt.

Probowałem coś takiego zrobić , wczytywał mi nazwy lecz niestety nie działał prawidlowo jeżeli pojawił się npowy plik.

Ma ktoś może jakieś gotowe rozwiązanie ?
elektrrrus
Musisz odpalać skrypt cyklicznie w cronie na przykład i sprawdzać stan katalogu od poprzedniego odpalenia.
mortus
Cytat(elektrrrus @ 26.08.2011, 09:30:30 ) *
Musisz odpalać skrypt cyklicznie w cronie na przykład i sprawdzać stan katalogu od poprzedniego odpalenia.

A co to ma do rzeczy? Jeśli skrypt po "ręcznym" uruchomieniu nie działał prawidłowo, to prze CRON-a też nie będzie.
  1. $folder = 'ścieżka/do/katalogu';
  2. foreach(glob($folder.'/*') as $filename) {
  3. if(is_file($filename)) {
  4. $filesInFolder[] = pathinfo($filename, PATHINFO_BASENAME);
  5. }
  6. }
  7. $sql = "SELECT `f`.`filename` FROM `files` `f`";
  8. $results = mysql_query($sql) or die(mysql_error());
  9. if(mysql_num_rows($result) != 0) {
  10. while($row = mysql_fetch_assoc($results)) {
  11. $filesInDb[] = $row['filename'];
  12. }
  13. }
  14. $notInDb = array_diff($filesInFolder, $filesInDb);
  15. if(count($notInDb) > 0) {
  16. $sql = 'INSERT INTO `files` (`filename`) VALUES ';
  17. foreach($notInDb as $filename) {
  18. $sql .= '('.$filename.'),'
  19. }
  20. $sql = substr($sql, 0, -1);
  21. $results = mysql_query($sql);
  22. }

Do tego trzeba podpiąć połączenie z bazą danych. Skrypt zapisuje tylko nazwy plików w katalogu pod zmienną $folder, aby zapisywał również ścieżkę, trzeba go nieco zmodyfikować (w sumie to zastąpić linię 4 poniższą):
  1. $filesInFolder[] = $filename;

Oczywiście nie wiem, jak wygląda u Ciebie tabela w bazie danych, w przykładzie ma ona dwa pola (id oraz filename) i nazywa się 'files'. Skrypt nie sprawdza, czy pliki zostały usunięte, ale czy zostały dodane.
Pisane z "palca", więc nie wiem, czy będzie działać na 100%.
projektyKJR
Wielkie dzięki za pomoc dzisiaj sprawdzę czy działa, dokładnie oto mi chodziło żeby sprawdzał czy są nowe pliki, poźniej to będzie uruchamiane przez crona.

pozdrawiam
Konrad
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.