Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SFTP] Upload pliku
Forum PHP.pl > Forum > Przedszkole
Toshikatsu
Potrzebuje napisać wysyłkę pliku na zewnętrzny serwer przez SFTP. Mam sporą liczbę plików, w różnym czasie, z przeróżnymi nazwami itp. itd.
W celu zautomatyzowania tego napisałem funkcję która wykorzystywała rozszerzenie SSH2.

Na localhoście wszystko pięknie hulało, jednak na serwerze "produkcyjnym" nie mam dostępu do rozszerzeń i takich tam, a nie ma tam tego rozszerzenia, w związku z czym wyskakuje błąd "Call to undefined function ssh2_connect()".

Jakaś porada z czego skorzystać, żeby móc spokojnie wysyłać pliku bez zbędnej ingerencji w serwer i jego ustawienia?
Pyton_000
Może to: https://stackoverflow.com/a/18211889
Toshikatsu
Ok, to rozwiązanie wydaje się dużo prostsze, łatwiejsze i przyjemniejsze.
Aczkolwiek mam pewien problem, który nie do końca rozumiem.

Mam funkcję do wysyłki plików:
  1. public function sftp($host, $login, $password, $serverFilePath, $filePath, $fileNames) {
  2. $sftp = new \phpseclib\Net\SFTP($host);
  3.  
  4. if (!$sftp->login($login, $password)) {
  5. print('['.date('Y-m-d H:i:s')."] Błąd uwierzytelniania - {$login}\n");
  6. }
  7.  
  8. $sftp->chdir($serverFilePath);
  9.  
  10. foreach($fileNames as $fileName)
  11. {
  12. $sftp->put($fileName, $filePath.$fileName, NET_SFTP_LOCAL_FILE))
  13.  
  14. }
  15.  
  16. }


Połączenie jest wykonane, logowanie też bez problemu, jednak plik jaki powstaje na serwerze posiada w treści ścieżkę podaną w drugim argumencie.
Z tego co się dowiedziałem i z tego co rozumiem, 3 argument powinien powodować, że wysyłany jest plik z podanej ścieżki, a nie string umieszczony jako 2 argument.
Ktoś coś? :V

EDIT:
Głupota, ale jednak:
NET_SFTP_LOCAL_FILE mimo polecania na wszelkich możliwych poradnikach, tak właściwie nie jest zdefiniowany w phpspeclib.
Rozwiązanie to zamienić 'NET_SFTP_LOCAL_FILE' na 1 biggrin.gif

Btw. Dzięki za polecenie
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.