gpt4 book ai didi

php - 如何使用phpseclib通过SFTP检查上传的文件是否存在

转载 作者:可可西里 更新时间:2023-11-01 00:19:44 27 4
gpt4 key购买 nike

我正在使用 phpseclib 将文件上传到远程服务器。以前,我的脚本运行良好,但我期望它可以检查远程服务器是否已收到文件。例如如果文件存在返回 1/true 或者如果文件不存在返回 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

关于php - 如何使用phpseclib通过SFTP检查上传的文件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32628932/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com