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