Yii2 - Как перечислить файлы внутри папки

Привет, я делаю приложение Yii2 Basic и имею форму загрузки файла в области администратора. Загрузка файлов отправляет файлы в приложение /web/uploads. Я последовал за большим руководством по загрузке файлов из samdark. Это можно увидеть здесь: https://github.com/yiisoft/yii2/blob/master/docs/guide/input-file-upload.md

Что мне нужно сделать, так это создать представление, которое визуализирует гиперссылки на каждый из файлов внутри папки uploads.

В Yii1.xx появилось расширение для обработки файлов под названием Cfile очень удобно. Я использовал в нескольких приложениях, чтобы делать то, что хочу сейчас.

Используя Cfile, я смог написать такой код:

$cfileDir = Yii:: app() → file- > set ('pdfs/');//устанавливаем pdfs как целевую папку

$files = $cfileDir- > getContents();

Метод getContents() был отличным, потому что он позволил мне позже применить цикл foreach и перечислить все файлы в папке.

В Yii2 как сделать что-то подобное в папке uploads, то есть список файлов в этой папке и создать гиперссылки в представлении.

Чтобы заполнить гиперссылки внутри представления, я мог бы использовать Html:: a(), но чтобы получить все файлы внутри него, я не знаю, как это сделать.

Любые идеи? Спасибо.

ИЗМЕНИТЬ

РЕШЕНО с большим наконечником от ALI.

ЗДЕСЬ ПОЛНЫЙ БЛОК КОДА

<?php
    $files=\yii\helpers\FileHelper::findFiles('uploads/');
    if (isset($files[0])) {
        foreach ($files as $index => $file) {
            $nameFicheiro = substr($file, strrpos($file, '/') + 1);
            echo Html::a($nameFicheiro, Url::base().'/uploads/'.$nameFicheiro) . "<br/>" . "<br/>" ; // render do ficheiro no browser
        }
    } else {
        echo "There are no files available for download.";
    }
?>

Ответы

Ответ 1

В Yii2 вы можете достичь этого, используя FileHelper класс, как показано ниже:

$files=\yii\helpers\FileHelper::findFiles('/path/to');

Теперь у вас есть список всех файлов в переменной $files как массив.

findFiles(), возвращает файлы, найденные в указанном каталоге и подкаталогах.

Другие примеры:

\yii\helpers\FileHelper::findFiles('.',['only'=>['*.php','*.txt']]);

В приведенном выше списке перечислены все файлы только с расширениями php и txt.

\yii\helpers\FileHelper::findFiles('.',['except'=>['*.php','*.txt']]);    

В приведенном выше списке перечислены все файлы со всеми расширениями, кроме php и txt расширений.

\yii\helpers\FileHelper::findFiles('.',['recursive'=>FALSE]);

Вышеприведенный пример не отображает файлы под подкаталогами