Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][FTP] Pobieranie z ftp przez php
Forum PHP.pl > Forum > Przedszkole
nieznany
Witam,

Tworzę obsługę ftp dla klientów na serwerze.
W panelu klienta wyświetlam juz zawartość zdalnego katalogu ftp ( zabezpieczony hasłem [ Każdy użytkownik posiada odrębne konto ] )

  1. echo "<h1>Bieżący katalog to teraz: " . ftp_pwd($ftpstream) . "</h1>";
  2. $SciezkaWyswietlana = "/";
  3. $files_array = ftp_nlist($ftpstream, $SciezkaWyswietlana);
  4. while (list(, $this_file) = each ($files_array)) {
  5. echo "<div class=\"strefa_plik\">$this_file <a href=\"ftp://uzytkownik@mojserwer.pl/$this_file\"><--pobierz</a></div>";}


Wszystko działa poprawnie, ale! Aby pobrać plik, za każdym razem klient musiałby podawać swoje hasło, czy jest jakiś sposób aby przenieść do zadanie na php?
Tym bardziej że hasło użytkownika w trakcie logowania przenoszę do sesji i także na podstawie loginu i hasła tworzone jest konto ftp...

Przy okazji: wyświetlając pliki z katalogu chciałbym aby nie wyświetlały się pierwsze dwie pozycje w liście plików, by można było kożystać tylko z "/"
  1. .
  2. ..
  3. plik.txt
  4. plik2.txt
sadistic_son
Aby nie wyswietlaly sie 2 pierwsze pozycje uzyja warunku logicznego w petli while:
  1. while (list(, $this_file) = each ($files_array)) {
  2. if($this_file!='.' && $this_file!='..'){
  3. echo "<div class=\"strefa_plik\">$this_file <a href=\"ftp://uzytkownik@mojserwer.pl/$this_file\"><--pobierz</a></div>";}
  4. }
To zalatwia sprawe.
Cytat
by można było kożystać tylko z "/"
Nie bardzo wiem co chciales przez to powiedziec. Aby poajwial sie slash a po kliknieciu w niego nastepowalo wyjscie o folder wyzej?
nieznany
Dziękuję, chyba już naprowadziłeś mnie na właściwy trop.
Chciałem aby użytkownicy nie mieli możliwości zmiany katalogu, by nawet nie wyświetlały się ".." i "." po wylistowaniu zawartości głównego folderu...
zdaje się że musiałbym zrobić coś na ten deseń

  1. $SciezkaWyswietlana = "/";
  2. $files_array = ftp_nlist($ftpstream, $SciezkaWyswietlana);
  3. while (list(, $this_file) = each ($files_array)) {
  4. if($this_file!=='.' ) { echo "" ;}
  5. else if($this_file!=='..' ) { echo ""; }
  6. else { echo "<div class=\"strefa_plik\">$this_file <a href=\"ftp://uzytkownik@mojserwer.pl/$this_file\"><--pobierz</a></div>";}
  7. }


pytanie co zrobić z nieszczęsnym "uzytkownik@mojserwer.pl" nadal szperam po googlach i nic nie moge znaleźć sensownego co by rozwiązało kwestie pobieranie plików.
Wiem że ostatecznie mógłbym kopiować pliki z zdalnego zasobu ftp:// na katalog lokalny np ./klient/pliki/ ... ale to było by bezsensu ze względu na to żę rozmiary plików mogą być miedzy 1mb a nawet i 250
W ostateczności klient będzie musiał dwa razy podawać to samo hasło, przy logowaniu do serwisu i przy pobieraniu każdego pliku... ale nie wydaje mi się by to było dobre...

Wyświetlanie zawartości bez wybranych .. . wykonałem tak.

  1.  
  2. $SciezkaWyswietlana = "/";
  3. $files_array = ftp_nlist($ftpstream, $SciezkaWyswietlana);
  4. $files_array = array_diff($files_array, array("..",".", ".ftpquota"));
  5.  
  6. while (list(, $this_file) = each ($files_array)) {
  7. echo "<div class=\"vizform_strefa_plik\">$this_file <a href=\"ftp://vizform@vizform.pl/$this_file\"><--pobierz</a></div>";}
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.