如何使用phpseclib通过SFTP检查上传的文件是否存在
我正在使用phpseclib将文件上载到远程服务器。以前,我的脚本工作得很好,但我希望它能够检查远程服务器是否接收到该文件。例如,如果文件存在,则返回1/true;如果文件不存在,则返回0/false 我的代码:如何使用phpseclib通过SFTP检查上传的文件是否存在,php,file-upload,sftp,phpseclib,file-exists,Php,File Upload,Sftp,Phpseclib,File Exists,我正在使用phpseclib将文件上载到远程服务器。以前,我的脚本工作得很好,但我希望它能够检查远程服务器是否接收到该文件。例如,如果文件存在,则返回1/true;如果文件不存在,则返回0/false 我的代码: include('Net/SFTP.php'); $path = "upload/"; $path_dir .= $ref .".xml"; $directory = '/home/XML/'; $directory .= $ref .".xml"; $sftp = new
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";
}
文件上传成功,但不知道如何检查文件是否存在
是否有人对此故障排除有任何想法或建议?您可以使用
文件\u exists
方法:
if ($sftp->file_exists($directory))
{
echo "File exists";
}
if ($sftp->stat($directory))
{
echo "File exists";
}
(这里,$directory
变量名非常混乱。它是指向文件的路径,而不是目录。)
虽然测试put
方法的结果就足够了。实际上并不需要额外的检查
文件\u存在
方法仅在phpseclib 0.3.7之后可用。如果您使用的是较旧版本的phpseclib,请使用stat
方法:
if ($sftp->file_exists($directory))
{
echo "File exists";
}
if ($sftp->stat($directory))
{
echo "File exists";
}
file\u exists
内部调用stat
。您也可以使用$sftp->file\u exists($directory)
您可以使用$sftp->rawlist($dir)
和数组键\u exists
,或者只使用stat($file)
您能给我一些例子吗?脚本挂起了我的服务器。很多感谢信,不是为我工作。不确定文件_是否存在sftp是否有文件_存在,因为我在sftp示例中找不到它:但stat($directory)正在正常工作您提供的链接的第2250行: