如何使用phpseclib通过SFTP检查上传的文件是否存在
How to check uploaded file is exists with SFTP using phpseclib
我正在使用 phpseclib 将文件上传到远程服务器。以前,我的脚本运行良好,但我期望它可以检查远程服务器是否已收到文件。例如如果文件存在 return 1/true 或者如果文件不存在 return 0/false.
我的代码:
include('Net/SFTP.php');
$path = "upload/";
$path_dir .= $ref .".xml";
$directory = '/home/XML/';
$directory .= $ref .".xml";
$sftp = new Net_SFTP('xxx.com',22);
if (!$sftp->login('username', 'password'))
{
exit('SFTP Login Failed');
}
echo $sftp->pwd();
$sftp->put($directory, $path_dir, NET_SFTP_LOCAL_FILE);
if (!$sftp->get($directory))
{
echo "0";
}
文件上传成功,不知道文件是否存在
有人对此有任何想法或建议吗?
可以使用file_exists
方法:
if ($sftp->file_exists($directory))
{
echo "File exists";
}
($directory
变量名在这里真的很混乱。它是一个文件路径而不是目录。)
虽然这足以测试put
方法的结果。额外的检查并不是真正需要的。
file_exists
方法仅在 phpseclib 0.3.7 之后可用。如果您使用的是旧版本的 phpseclib,请使用 stat
方法:
if ($sftp->stat($directory))
{
echo "File exists";
}
无论如何,file_exists
在内部调用 stat
。
你也可以 $sftp->file_exists($directory)
.
我正在使用 phpseclib 将文件上传到远程服务器。以前,我的脚本运行良好,但我期望它可以检查远程服务器是否已收到文件。例如如果文件存在 return 1/true 或者如果文件不存在 return 0/false.
我的代码:
include('Net/SFTP.php');
$path = "upload/";
$path_dir .= $ref .".xml";
$directory = '/home/XML/';
$directory .= $ref .".xml";
$sftp = new Net_SFTP('xxx.com',22);
if (!$sftp->login('username', 'password'))
{
exit('SFTP Login Failed');
}
echo $sftp->pwd();
$sftp->put($directory, $path_dir, NET_SFTP_LOCAL_FILE);
if (!$sftp->get($directory))
{
echo "0";
}
文件上传成功,不知道文件是否存在
有人对此有任何想法或建议吗?
可以使用file_exists
方法:
if ($sftp->file_exists($directory))
{
echo "File exists";
}
($directory
变量名在这里真的很混乱。它是一个文件路径而不是目录。)
虽然这足以测试put
方法的结果。额外的检查并不是真正需要的。
file_exists
方法仅在 phpseclib 0.3.7 之后可用。如果您使用的是旧版本的 phpseclib,请使用 stat
方法:
if ($sftp->stat($directory))
{
echo "File exists";
}
无论如何,file_exists
在内部调用 stat
。
你也可以 $sftp->file_exists($directory)
.