问题描述
我正在寻找将元数据添加到 TYPO3 Extbase 中的 sys_file 文件对象的解决方案。
$resourceFactory = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Resource\ResourceFactory::class);
$storage = $resourceFactory->getDefaultStorage();
$fileObject = $storage->addFile(
$temporaryFile,$storage->getFolder('some-folder/'),$newfilename
);
并且可以像这样使用 updateProperties() 操作一堆属性:
$fileObject->updateProperties(array(
'name' => 'foo',));
但是,当我创建文件时,如何在 sys_file_Metadata 中设置更多元数据属性,例如标题或替代文本?是否有文档,如何执行此操作。我只找到了这个:
但本文档不包含有关元数据处理的提示。
解决方法
我使用 MetaDataAspect
对象上可用的 File
解决了这个问题。
$metaData = $fileObject->getMetaData();
$metaData->offsetSet('title','Image title');
$metaData->save();
小心使用,因为 save
方法被标记为 @internal
。还要结帐 this changelog document,这是我找到的唯一文档。