首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Extbase FAL文件下载

Extbase FAL文件下载
EN

Stack Overflow用户
提问于 2014-06-26 21:20:15
回答 3查看 11.7K关注 0票数 3

我有关于用Extbase和FAL下载文件的问题。我可以使用以下命令来渲染图像

代码语言:javascript
复制
<f:image src="{file.uid}" alt="" width='100' height="100" treatIdAsReference="1"/> 

我可以得到图像,但我也有PDF文件可供下载,我不能使用这个ViewHelper。还有没有其他的ViewHelper可以下载文件?如果我转储该文件,我会得到如下结果:

代码语言:javascript
复制
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)

对于文件,originalResource为null;对于图像,使用ViewHelper打印图像。我拿不到文件..。

欢迎任何帮助..。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-27 21:10:13

你可以用VHS的viewhelper来做这个。查看以下代码:

代码语言:javascript
复制
<v:resource.file additionalAttributes="{foo: 'bar'}" data="{foo: 'bar'}" identifier="[mixed]" categories="[mixed]" treatIdAsUid="1" treatIdAsReference="1" as="NULL">
    <!-- tag content - may be ignored! -->
</v:resource.file>

文档链接:https://fluidtypo3.org/viewhelpers/vhs/master/Resource/FileViewHelper.html

您必须安装vhs扩展,并在模板文件中添加名称空间。

代码语言:javascript
复制
{namespace v=FluidTYPO3\Vhs\ViewHelpers}

作为最后一件事,您应该在typo3中索引这些文件。为此,创建一个调度程序任务,并选择File Abstraction Layer: Extract metadata in storage任务。

票数 0
EN

Stack Overflow用户

发布于 2014-09-16 18:21:31

可以使用originalResource的publicURL属性创建文件链接。

用于生成域模型属性中引用的文件列表的示例Fluid

代码语言:javascript
复制
<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>

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

如果您需要更多属性,以下是原始属性和引用的基本信息,以防您想要使用位于FlexForm中的覆盖

原始属性

代码语言:javascript
复制
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}

引用属性

代码语言:javascript
复制
title: {myObject.myFALproperty.originalResource.title}
description {myObject.myFALproperty.originalResource.description}

希望这能有所帮助。

仅供参考,这是相应的TCA的外观,但您显然已经知道这一点(请注意,此示例的maxitem设置为10:

代码语言:javascript
复制
'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)
    ),
),
票数 14
EN

Stack Overflow用户

发布于 2017-06-26 08:43:49

步骤1/2

您可以像这样获得PDF文件的URI:

在流体模板中:

代码语言:javascript
复制
<f:uri.image src="{file.uid}" treatIdAsReference="1"/> 

输出/path/to/your/pdf

就像你在问题中所说的那样,即使“文件的originalResource为null”,这种方法也是有效的。

步骤2/2

在流体模板中创建链接(使用内联表示法)

代码语言:javascript
复制
<a href="{f:uri.image(src:'{file.uid}', treatIdAsReference: 1)}">
Download PDF
</a>

测试环境

  • typo3 v7.6.19
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24431701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档