Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel存储方法allDirectories()不会从FTP服务器递归返回目录_Laravel_Ftp - Fatal编程技术网

Laravel存储方法allDirectories()不会从FTP服务器递归返回目录

Laravel存储方法allDirectories()不会从FTP服务器递归返回目录,laravel,ftp,Laravel,Ftp,我需要从FTP服务器获取所有目录的列表 成功安装FTP驱动程序后,Storage::allDirectories()方法将从根目录返回所有目录。我还尝试使用: Storage::目录('/',true) 也应该返回递归值,但情况相同 有人知道应该是什么问题吗 这是我的FTP连接设置: $ftp = Storage::createFtpDriver([ 'host' => $streamServer->url, 'username' => $streamServer-

我需要从FTP服务器获取所有目录的列表

成功安装FTP驱动程序后,
Storage::allDirectories()
方法将从根目录返回所有目录。我还尝试使用:

Storage::目录('/',true)

也应该返回递归值,但情况相同

有人知道应该是什么问题吗

这是我的FTP连接设置:

$ftp = Storage::createFtpDriver([
   'host' => $streamServer->url,
   'username' => $streamServer->username,
   'password' => $streamServer->password,
   'port' => '21',
   'timeout' => '30',
]);

欢迎来到Stackoverflow

我已经检查了我的代码,当我在
filesystems.php

我在
文件系统中创建了ftp驱动程序,如下所示

'ftp' => [
        'driver' => env('DOCUMENT_UPLOAD_DRIVER','sftp'),
        'host' => env('DOCUMENT_UPLOAD_HOST','127.0.0.1'),
        'username' => env('DOCUMENT_UPLOAD_USERNAME','root'),
        'password' => env('DOCUMENT_UPLOAD_PASSWORD','root'),
        'root'=> env('DOCUMENT_UPLOAD_ROOT', '/var/www/html')
        'port'     => env('DOCUMENT_UPLOAD_PORT', 22),
        'timeout'  => env('DOCUMENT_UPLOAD_TIMEOUT', 30),
    ], 
这一行是额外添加的

'root'=> env('DOCUMENT_UPLOAD_ROOT', '/var/www/html')
当我使用以下命令时,它对我有效

Storage::disk('ftp')->allDirectories('directoryName');
提供要从中获取列表的目录名或留空将为您提供
html
目录中所有递归目录的列表,因为我们已将其作为根目录提供


之后,您需要手动提取目录,因为它只会为您提供一个类似
名称空间的数组
将包含所有递归目录。

您必须自己递归地迭代目录列表,这就是我目前正在做的,但我希望找到最佳解决方案。但感谢您的反馈。问题是,用户必须自己添加ftp参数,所以我必须在控制器中设置连接。但我现在尝试了另一个FTP服务器,allDirectories()方法运行良好。。。似乎它与FTP服务器有关,但我不确定这可能是什么。编辑:新旧FTP的区别在于,旧的FTP在根目录中只有2000多个目录,而使用递归的新FTP只有100个目录。也许目录的数量有问题。