Список файлов с носителя в веб-интерфейсе (OctoberCMS) - PullRequest
0 голосов
/ 21 сентября 2019

Я все еще относительно новичок в OctoberCMS и задаюсь вопросом, могу ли я динамически перечислять файлы из области мультимедиа (бэкэнд) на моем веб-сайте (веб-интерфейс).Классический выделенный доступ через {{'banner.jpg' | media}} (документы: https://octobercms.com/docs/markup/filter-media) уже работает для меня.

Я также хотел бы вывести некоторые атрибуты файла, такие как размер файлаи отметка времени. Возможна ли такая вещь? Возможно, есть пример? Спасибо.

1 Ответ

2 голосов
/ 21 сентября 2019

Чтобы получить файлы из области мультимедиа, вы можете использовать MediaLibrary's Api

Демо, на вашей странице code используйте этот код, он покажет вам файлы в / корневой директории области мультимедиа

enter image description here

function onStart() {            
    $folder = '/';
    $mediaLib = \System\Classes\MediaLibrary::instance();
    // it will return us MediaLibraryItem instance     
    $files = $mediaLib->listFolderContents($folder);
    $this['mediaFiles'] = $files;
}

Теперь в markup секции

<div>
    <h1> files </h1>
    <ul>
    {% for item in mediaFiles %}
        <li>
        {% if item.fileType == 'image' %}
            <img src="{{ item.publicUrl }}" height="100" width="100"/>
            <br/> {{ item.path }}
            <br/> {{ item.sizeToString() }} 
            <br/> {{ item.lastModifiedAsString() }}
        {% else %}
            {{ item.path }} 
            <br/> {{ item.sizeToString() }} 
            <br/> {{ item.lastModifiedAsString() }}
        {% endif %}
        </li>
    {% endfor %}
    </ul>
</div>

Теперь вы можете получить всю необходимую информацию.Вы также можете использовать этот код в своем компоненте для лучшего контроля.

Вывод:

enter image description here

, если у вас есть какие-либо сомненияпожалуйста, прокомментируйте.

...