我正在使用 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/
的所有组合,但文件不会上传到那里。 最佳答案
我不认为你的看跌期权正在做你认为它正在做的事情。根据文档,你需要做一个 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 SFTP 简单文件上传,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13498910/