Как вывести размер связанного файла в шаблоне данных?

В жидком шаблоне я хотел бы вывести размер связанного файла.

Я использую f:link.page для ссылки на файл, так как я думаю, что это способ сделать это (пожалуйста, исправьте, если нет).

<f:link.page class="download" pageUid="fileadmin/redaktion/download/papers/{paper.download}" {paper.author}">PDF</f:link.page>

Поскольку я уже использую расширение ml_links на сайте, я подумал, что могу передать ссылку через lib.parseFunc_RTE, но

<f:format.html parseFuncTSPath="lib.parseFunc_RTE"><f:link.page class="download" pageUid="fileadmin/redaktion/download/papers/{paper.download}" {paper.author}">PDF</f:link.page></f:format.html>

просто оборачивает это в p.bodytext.

Нужно ли использовать другой синтаксис для применения f:format.html TO f:link.page - или есть лучший способ сделать это (через жидкий или vhs viewhelper)?

7 ответов

Решение

Когда я использую FluidContent, я установил расширение VHS, а затем просто использую:

<f:format.bytes decimals="1">{v:media.size(path: '{file}')}</f:format.bytes>

Это выводит чистые читаемые размеры как "28.2 МБ".

Самый простой способ — использовать собственный параметр TYPO3 FAL originalFile.size :

      {audio.0.originalFile.size -> f:format.bytes()}}

Собственно VH - это самый быстрый способ добиться этого, то есть на основе этого VH вам придется заменить size param с путем к файлу, а затем используйте ie filesize функция PHP для извлечения размера в байтах.

Вот мой VH:

https://gist.github.com/ursbraem/9645542

Я немного упростил оригинал, вывод "KiB" для размера файла слишком технический для меня.

Если вы используете VHS, вы можете рассмотреть https://fluidtypo3.org/viewhelpers/vhs/master/Media/SizeViewHelper.html (в сочетании с f:format.bytes).

В новых версиях TYPO3 вы можете использовать originalResource.size атрибут объекта FileReference.

{file.originalResource.size -> f:format.bytes()}

или в вашем случае:

{paper.download.originalResource.size -> f:format.bytes()}

ТИПО3 10

Мне нужно было вывести размер файла для модуля DCE в TYPO3 10, вот что я придумал, используя VHS:

      <f:format.bytes><v:media.size><v:format.trim characters="/"><f:uri.typolink parameter="{item.link}" /></v:format.trim></v:media.size></f:format.bytes>

Объяснение:

  • f:uri.typolinkгенерирует полный путь, который мне нужен для
  • требуется путь без ведущей косой черты, v:format.trimудаляет этот символ.
  • f:format.bytesотображает вывод из v:media.sizeв КБ или МБ.
Другие вопросы по тегам