PHP SFTP Простая загрузка файлов


Я использую класс phpseclib - SFTP и пытаюсь загрузить файл таким образом -

$sftp = new Net_SFTP('mydomain.com');
if (!$sftp->login('user', 'password')) {
    exit('Login Failed');
}
$sftp->put('/some-dir/',$fileTempName);

Файл, однако, не загружается внутри some-dir, а загружается за один каталог до (в начальный каталог, допустим, он корневой). Это сводит меня с ума, я думаю, что перепробовал все комбинации some-dir/ или /some-dir или /some-dir/, но файл не будет загружаться туда.

Author: Martin Prikryl, 2012-11-21

1 answers

Я не думаю, что ваш put делает то, что, по вашему мнению, он делает. Согласно документам, вам нужно сделать Net_SFTP::chdir('/some-dir/'), чтобы переключиться в каталог, в который вы хотите отправить файл, затем put($remote_file, $data), где remote_file - имя файла, а $data - фактические данные файла.

Пример кода:

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

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

echo $sftp->pwd() . "\r\n";
$sftp->put('filename.ext', 'hello, world!');
print_r($sftp->nlist());
?>
 3
Author: Gary, 2015-05-23 08:36:12