我有代码在我的服务器上生成一个文本文件。然后我需要使用sftp将此文件上传到另一台服务器。为了开始,我做
if(performLdapOperations()) {
sleep(10);
performFtpOperation();
}
performLdapOperations生成文本文件并将其放在我的服务器上,performFtpOperation获取此文本文件并上传到另一台服务器。这是我的功能
function performFtpOperation() {
global $config;
$local_directory = getcwd() .'/outputs/';
$remote_directory = '/home/newfolder/';
$sftp = new SFTP($config::FTP_SERVER, 22, 10);
if (!$sftp->login($config::FTP_USER, $config::FTP_PASSWORD)) {
exit('Login Failed');
}
$files_to_upload = array();
/* Open the local directory form where you want to upload the files */
if ($handle = opendir($local_directory))
{
/* This is the correct way to loop over the directory. */
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$files_to_upload[] = $file;
}
}
closedir($handle);
}
if(!empty($files_to_upload))
{
/* Now upload all the files to the remote server */
foreach($files_to_upload as $file)
{
$success = $sftp->put($remote_directory . $file,
$local_directory . $file,
NET_SFTP_LOCAL_FILE);
}
}
}
因此生成的文本文件位于我的outputs文件夹中。然后,我想要获取此文件并上传到新服务器到/ home / newfolder /
位置一切似乎都有效,文件似乎上传到新服务器。但是,当我打开已上载的文件时,它包含的是文件所在的路径,没有别的。我的服务器上的文件位于outputs文件夹中,包含了所有内容,由于某些原因,通过sftp发送时出现了问题?
我的代码中是否有可能导致此问题的内容?
由于
答案 0 :(得分:0)
看起来你正在使用命名空间的2.0版本的phpseclib。如果是这种情况那么问题在于这一行:
sed
试试这个:
$success = $sftp->put($remote_directory . $file,
$local_directory . $file,
NET_SFTP_LOCAL_FILE);