Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: listowanie plików i upload
Forum PHP.pl > Forum > PHP
Balus
Witam, ostatnio słyszałem i czytałem o funkcji GLOB.
Chciałbym się dowiedzieć, czym lepiej listować pliki GLOB czy ReadDir?
Wiem, że w tym drugim trzeba wykluczyć ., .., i ewentualnie .htaccess...

Pytanie drugie: jak zrobić akceptację plików bez użycia bazy danych? Myślałem o tym, żeby stworzyć dwa foldery: pliki i niezaakceptowane.
W jednym z nich byłyby pliki już zaakceptowane, a w drugim oczekujące na nią. W momencie, gdy administrator zaakceptuje plik, zostanie on przeniesiony z folderu niezaakceptowane do pliki. Czy takie rozwiązanie jest wydajne, czy jest może coś łatwiejszego? smile.gif

Pytanie trzecie: Jak zrobić remote upload (upload z zewnętrznego linku). Myślę, że chodzi o fopen, fwrite, lecz nie jestem pewien. A no i czy takie coś w ogóle jest bezpieczne? Czy możliwe jest w tej metodzie przyjmowanie tylko wybranych rozszerzeń plików?

Pozdrawiam i z góry dziękuję za odpowiedź. smile.gif
darko
1. Generalnie glob jest łatwiejsze w użyciu, ale listować pliki i/lub foldery można także poprzez RecursiveIteratorIterator + RecursiveDirectoryIterator, co imo jest jeszcze wygodniejsze, np.
  1. $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('c:/'));
  2. foreach($it as $k=>$v)
  3. {
  4. echo $k . ' => ' . $v . '<br/>';
  5. }


2. Po co trzymać pliki niezaakceptowane i po co obarczać admina dodatkowymi obowiązkami w postaci ręcznej akceptacji przesyłanego syfu? Śmietnik nikomu nie jest potrzebny. Wystarczy zdefiniować najlepiej tablicę dozwolonych rozszerzeń i sprawdzać $akceptowalne = in_array($rozszerzenie, $dozwolone) ? true : false; Tylko pamiętajmy, że sposób ten nie jest skuteczny, podobnie, jak metody rozpoznawania rozszerzenia pliku czy typu mime - jedno i drugie da się obejść i skutecznego lekarstwa niestety nie ma, nawet systemowe exec('file -bi plik'); nie zawsze można zastosować (różnie rozpoznawalne typy mime na różnych serwerach z różnymi typami plików np. pliki doc nowego worda raz rozpoznawane są jako typ doc, innym razem - poprzez użytą kompresję danych - jako zipy etc. itp.), jest osobny wątek na forum na ten temat, poszukaj, a znajdziesz.

3. Tak, można użyć fopen ale i tu trzeba przykładać ogromną wagę do bezpieczeństwa (walidacja poprawności urli, typów i rozszerzeń plików, rozmiaru itd. itp.).
Balus
Ok, dzięki za odpowiedź. Wieczorkiem sobie to przeanalizuję. smile.gif
Jeszcze jedno pytanko: możliwy jest upload pliku na zewnętrzny serwer z poziomu PHP?
Zakładam, że mam dostęp do obydwóch serwerów... 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.