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

Laravel Storage method allDirectories() does not return recursively directories from FTP server

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

成功 FTP 驱动程序安装后,Storage::allDirectories() 方法是 return 从根目录开始所有目录。我也尝试过使用:

Storage::directories('/', true)

这也应该 return 递归值,但情况相同。

有谁知道应该是什么问题吗?

这是我的 FTP 连接设置:

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

欢迎使用 Whosebug

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

中添加以下行时,它正在运行

我在 filesystems 中创建了 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 目录中所有递归目录的列表,因为我们已将其作为根目录提供。

之后你需要手动提取目录,因为它只是给你一个像 namespace 这样的数组将所有递归目录。