通过PHP(phpseclib)上传文件到SFTP服务器

7
我有一些CSV文件,想要上传到SFTP服务器的“incoming”文件夹中。我正在使用phpseclib来完成这个任务。连接已经建立,但没有输出任何内容。
因为我之前没有处理过SFTP,所以不确定我的操作是否正确。以下是我的代码:
$file = "leads.csv";

$server = "41.160.150.200";
//$server = "ft.bayport.co.za";
$port = "22";
$username = "";
$password = ""; 

//username and password removed for security reasons

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

include 'Net/SFTP.php';

define('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX); // or NET_SFTP_LOG_SIMPLE

$sftp = new Net_SFTP($server);

// Check SFTP Connection
if (!$sftp->login($username, $password)) {
    echo 'Login Failed.';
    echo $sftp->getSFTPLog();
}else{

echo 'Connected to SFTP.';

echo $sftp->pwd();

// Upload CSVs to SFTP incoming folder
     echo $upload = $sftp->put("incoming/".$file, "./bayport/".$file, NET_SFTP_LOCAL_FILE);

}

我非常希望能够得到任何帮助。谢谢!


那个脚本的输出是什么?登录失败还是成功连接了?pwd()返回您预期的输出吗?$sftp->put()根据上传是否成功返回布尔值。我不知道这是否是您所期望的? - neubert
嗨@neubert,感谢您的回复。连接成功了。我现在知道问题出在哪里了。“incoming/”应该是“/incoming/”。 - maikelsabido
1个回答

8
现在我知道这个脚本的问题所在了。
远程目录的URL是错误的。"incoming/" 应该是 "/incoming/"。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接