Я использую phpseclib – класс SFTP и пытаюсь загрузить файл, например:
$sftp = new Net_SFTP('mydomain.com'); if (!$sftp->login('user', 'password')) { exit('Login Failed'); } $sftp->put('/some-dir/',$fileTempName);
Однако файл не загружается внутри some-dir
но загружается в один каталог раньше (в стартовый каталог, скажем, это root). Это сводит меня с ума, я думаю, что я пробовал все комбинации some-dir/
or /some-dir
или /some-dir/
, но файл там не будет загружаться.
Я не думаю, что ваш пост делает то, что вы думаете, что он делает. Согласно документам, вам нужно сделать 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()); ?>
в<?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()); ?>