Extbase FAL文件下载

smi*_*vic 3 typo3 fluid extbase

我对使用Extbase和FAL下载文件有疑问.我可以用图像渲染图像

<f:image src="{file.uid}" alt="" width='100' height="100" treatIdAsReference="1"/> 
Run Code Online (Sandbox Code Playgroud)

我可以获得图像,但我也有PDF文件供下载,我不能使用这个ViewHelper.还有其他ViewHelper用于文件下载吗?如果我转储该文件我得到这个:

file => TYPO3\CMS\Extbase\Domain\Model\FileReferenceprototypepersistent entity (uid=1342, pid=310)
         originalResource => NULL
         uid => 1342 (integer)
         _localizedUid => 1342 (integer)modified
         _languageUid => 0 (integer)modified
         pid => 310 (integer)
Run Code Online (Sandbox Code Playgroud)

对于文件,originalResource为null,对于图像,使用该ViewHelper打印图像.我无法获得档案......

欢迎任何帮助......

小智 13

您可以使用originalResource的publicURL属性来创建文件链接.

Sample Fluid可生成域模型属性中引用的文件列表

<ul class="download-list">
    <f:for each="{myObject.myFALproperty}" as="file" >
        <li><a href="{file.originalResource.publicUrl}">{file.originalResource.title}</a></li>
    </f:for>
</ul>
Run Code Online (Sandbox Code Playgroud)

只需使用{myObject.myFALproperty}即可查看您可以访问的内容.

如果您需要更多属性,请参阅原始基础和参考,以防您想使用位于FlexForm中的覆盖

原始属性

filename :{myObject.myFALproperty.originalResource.originalFile.name}
title:{myObject.myFALproperty.originalResource.originalFile.title}
description:{myObject.myFALproperty.originalResource.originalFile.description}
alt:{myObject.myFALproperty.originalResource.originalFile.alternative}
uid:{myObject.myFALproperty.originalResource.originalFile.uid}
path:{myObject.myFALproperty.originalResource.publicUrl}
Run Code Online (Sandbox Code Playgroud)

参考属性

title: {myObject.myFALproperty.originalResource.title}
description {myObject.myFALproperty.originalResource.description}
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.

仅供参考,这是相应的TCA看起来像,但你显然已经知道(注意这个样本的maxitems设置为10:

'myFALproperty' => array(
    'exclude' => 0,
    'label' => 'LLL:EXT:xy_sample/Resources/Private/Language/locallang_db.xlf:tx_xysample_domain_model_myobject.myFALproperty',
    'config' => 
    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
        'myFALproperty',
        array('maxitems' => 10)
    ),
),
Run Code Online (Sandbox Code Playgroud)