Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][FTP] Pobieranie z ftp przez php
nieznany
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.12.2009
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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


Ten post edytował nieznany 30.12.2009, 20:26:21
Go to the top of the page
+Quote Post
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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?

Ten post edytował sadistic_son 30.12.2009, 22:53:41
Go to the top of the page
+Quote Post
nieznany
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.12.2009
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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>";}


Ten post edytował nieznany 31.12.2009, 00:49:48
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 03:37