Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Download pliku przez połączenie FTP
Forum PHP.pl > Forum > Przedszkole
ignas1987
Witam wszystkich forumowiczów winksmiley.jpg
Jestem nowym użytkownikiem tego forum - osobą zaczynającą przygodę z PHP. Jak narazie wszystko było ok do momentu kiedy chciałem stworzyć mini klienta FTP. Z wysyłaniem pliku nie ma problemu ale z pobieraniem mam dramatyczny problem. Mianowicie: kiedy łączę sie z ftp na innym komputerze niż serwer na którym stoi strona, plik który chce pobrać nie zapisuje się lokalnie na danym komputerze (jak powinno, tak zrozumiałem z opisu funkcji) a zapisuje się na serwerze. Z jakiego komputera chciałbym pobrać plik to on i tak zapisuje się na serwerze. Troszkę sie rozpisałem, może pokaże co wymodziłem:

  1. <?php
  2. // ustaw podstawowe połączenie
  3. $conn_id = ftp_connect('jakis.pl');
  4. $ftp_user_name = 'admin@niepodam.pl';
  5. $ftp_user_pass= 'jakieshaslo';
  6. $plik_lokalny= 'D:/fotki/fotka1.jpg';
  7. $plik_zdalny= 'fotka1.jpg';
  8.  
  9. // zaloguj się nazwą użytkownika i hasłem
  10. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  11.  
  12. // sprawdź połączenie
  13. if ((!$conn_id) || (!$login_result)) {
  14.        echo "Połączenie FTP się nie powiodło!";
  15.        echo "Próbowano połączyć się do $ftp_server jako użytkownik"
  16.           . $ftp_user_name;
  17.        exit;
  18.    } else {
  19.        echo "Połączony z $ftp_server jako użytkownik $ftp_user_name";
  20.    echo " ------------------>> \";
  21.    }
  22.  
  23. // prześlij plik
  24. //$upload = ftp_put($conn_id, $plik_lokalny, $plik_zdalny, FTP_BINARY);
  25.  
  26.  
  27.  
  28. //ściągnij plik
  29. $upload = ftp_get($conn_id, $plik_lokalny, $plik_zdalny, FTP_BINARY);
  30.  
  31.  
  32.  
  33. // sprawdź stan operacji
  34. if (!$upload) {
  35.        echo "Wstawienie pliku przez FTP się nie powiodło!";
  36.    } else {
  37.        echo "Przesłano $plik_zdalny na $ftp_server jako $plik_lokalny";
  38.    }
  39.  
  40. // zamknij strumień FTP
  41. ftp_close($conn_id);
  42. ?>


Może mi ktoś to wytłumaczyć dlaczego tak jest? [edit]Chyba ciężki wątek, chyba się nie dowiem dlaczego tak jest[/edit]
erix
Cytat
Mianowicie: kiedy łączę sie z ftp na innym komputerze niż serwer na którym stoi strona, plik który chce pobrać nie zapisuje się lokalnie na danym komputerze


A takie krótkie pytanie wyciągające: PHP działa po stronie serwera, czy klienta? Czy PHP ma dostęp do Twojego dysku, czy do dysku serwera?
ignas1987
no tak, racja... cholibcia... jakby tu zrobić download, żeby ściągał plik na komputer lokalny...questionmark.gif Chce zrobić coś takiego jak np. pod dosem... zwykłe pobieranie pliku przez ftp: łączę się z ftp, podaje login, hasło, i moge sobię ściągać co chce podając wcześniej nazwe pliku... Ale widzę, że jednak tak sie chyba nie da sadsmiley02.gif
erix
No, możesz najwyżej content-disposition: attachment dać i ściągniesz wtedy jak zwykłe pobieranie pliku...

Cytat
Ale widzę, że jednak tak sie chyba nie da

Chyba, że skrypt uruchomisz u siebie, a nie na serwerze. winksmiley.jpg
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.