1

我正在尝试从 Symfony2 命令获取 SFTP 服务器中的 json 文件。我使用KnpGaufretteBundlephpseclib-sftp适配器。

我的计算机上有一个正在运行的 SFTP 服务器,我可以将它与 filezilla 连接并列出/读取文件,所以我认为没有权限问题。

问题是连接工作,我可以列出文件

$sftpService->getExec()->run("ls")

但我不能

$sftpService->getSftp()->listDirectory(".")

我可以创建一个目录但不列出它..而且我无法读取文件。这是我的测试代码:

$sftpService = $this->getContainer()->get("phpseclib_sftp");
dump($sftpService->getExec()->run("ls")); //file "test.txt" exist
$sftp = $sftpService->getSftp();
dump($sftp->exists("test.txt")); //false
dump($sftp->read("test.txt")); //false
dump($sftp->mkdir("testMkdir")); //true
dump($sftpService->getExec()->run("ls")); //the new directory exist
dump($sftp->listDirectory("testMkdir")); //false

这是输出: 控制台输出

以及基本文件夹的权限:

-rwxrwxrwx  1 sftp_user  staff  11  6 oct 10:31 test.txt
drwxr-xr-x  2 sftp_user  staff  68  6 oct 10:56 testMkdir

这是该read功能 的警告在此处输入图像描述

编辑:我可以用$sftpService->getExec()->run("cat test.txt"));

4

1 回答 1

1

好的,对于 SFTP url (ssh2.STFP://...) 来说,我需要使用绝对路径,我的 ftp 用户的基本文件夹不起作用,所以它可以使用:

$sftp->read($sftp->realpath("test.txt"))
于 2016-10-06T09:55:57.167 回答