在我的扩展中,我阅读了文件夹和图像 . 但是在结果中总是缺少来自sys_file_metadata的元数据,我什么也没发现如何加载它 .
数据库条目在那里,所以文件被索引,一切似乎都没问题 . BE工作正常 .
这里有一些代码:
控制器操作:
$storageId = 1;
$storageRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\StorageRepository');
$storage = $storageRepository->findByUid($storageId);
$singleFile = $storage->getFile('/user_upload/my_file.pdf');
$singleFile = true;
$this->view->assign('singleFile', $singleFile);
如果我做一个f:debug它会告诉我这个:
Extbase Variable Dump
TYPO3\CMS\Core\Resource\Fileprototypeobject
metaDataLoaded => FALSE
metaDataProperties => array(empty)
indexingInProgress => FALSE
updatedProperties => array(empty)
indexerService => NULL
properties => array(15 items)
storage => TYPO3\CMS\Core\Resource\ResourceStorageprototypeobject
identifier => '/user_upload/my_file.pdf' (24 chars)
name => 'my_file.pdf' (11 chars)
deleted => FALSE
正如您所看到的,有一个字段metaDataProperties和metaDataLoaded,所以它没有被加载 .
有人知道如何加载它吗?
2 回答
您可以尝试在流体中使用它
{singleFile.properties.description}, {singleFile.properties.title} or {singleFile.properties.alternative}
或者这个获得所有属性
$singleFile->_getMetaData()
这也可能有帮助
$singleFile->getProperty('description')
对于读取相关文件(由“媒体”扩展提供),一个解决方案将是以下代码 . 这是为了完成上述评论中的问题 .