Выполните итерацию каталога, расположенного на FTP-сервере, с помощью Laravel

#laravel #ftp #iteration

Вопрос:

Я пытаюсь просмотреть FTP-сервер с помощью приложения Larvel 8, чтобы узнать, есть ли файлы для загрузки. Структура папок может отличаться, поэтому я думаю использовать итеративную функцию.

Однако проблема в самом начале. При использовании различных методов над классом хранения я застреваю, потому что могу получить только массив строк и не знаю, как продолжить итерацию.

 Storage::disk('ftp')->allDirectories();
 

Результат таков

 array:2 [▼
  0 => "2020"
  1 => "2021"
]
 

Что мне нужно сделать, так это перебрать эти папки, содержащие месяцы, чтобы получить все файлы.
Заранее спасибо за любой ответ.

Ответ №1:

  1. Сначала повторите массив, содержащий строку имен файлов и папок.
  2. Затем получите URL — адрес папки или файла, используя функцию хранения. Storage::url('iterated_file_or_folder_name')
  3. Используйте URL-адрес и проверьте, является ли элемент файлом или папкой, используя встроенную функцию is_file или is_dir
  4. Теперь, если это файл, загрузите его или, если это каталог, добавьте его к URL-адресу и также просмотрите этот новый каталог.

Спасибо