Отправить файл по sftp - PullRequest
0 голосов
/ 14 марта 2011

Под машиной с Ubuntu я хотел создать скрипт, который позволит мне отправлять файл через SFTP.Для этого я использую следующий код:

$connection = ssh2_connect('XXX', 22);

if (ssh2_auth_password($connection, 'USER', 'PASS')) {
  echo "Authentication Successful!\n";
} else {
  die('Authentication Failed...');
}

для первого результата:

Warning: ssh2_auth_password(): Authentication failed for ...

Я подумал, прочитав много уроков, в которых отсутствует расширение ssh2.so.Так что я установил его и до сих пор нет результатов.

Ответы [ 2 ]

1 голос
/ 14 марта 2011

Вместо функций на основе ssh2 я бы предложил phpseclib, чистую реализацию PHP SFTP .

Используя phpseclib, вы можете сделать:

<?php
include('Net/SFTP.php');

$sftp = new Net_SFTP('www.domain.com');
if (!$sftp->login('username', 'password')) {
    exit('Login Failed');
}

echo $sftp->pwd() . "\r\n";
$sftp->put('filename.ext', file_get_contents('localfile.data'););
print_r($sftp->nlist());
?>
0 голосов
/ 14 марта 2011

Вы можете использовать потоковый механизм: адрес файла назначения как

$dest = "ftps://user:pwd@server.com/destinationfile.txt"

и затем используйте стандартную функцию php copy:

copy($from, $dest)
...