我正在尝试从Symfony2命令获取SFTP服务器中的json文件。我使用KnpGaufretteBundle和phpseclib-sftp适配器。
我的计算机上有一个正在运行的SFTP服务器,我可以将它与filezilla和list / read文件连接起来,所以我认为没有权限问题。
问题是连接工作,我可以用
列出文件$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
编辑:我可以使用$sftpService->getExec()->run("cat test.txt"));
答案 0 :(得分:1)
好吧所以它似乎对于SFTP网址(ssh2.STFP:// ...)我需要使用绝对路径,我的ftp用户的基本文件夹不起作用,所以它'与...合作:
$sftp->read($sftp->realpath("test.txt"))