TYPO3-Extbase-检测给定文件引用的缺失文件
我尝试了三种不同的方法来检测TYPO3-Extbase-检测给定文件引用的缺失文件,typo3,extbase,filereference,Typo3,Extbase,Filereference,我尝试了三种不同的方法来检测FileReference的原始文件是否仍然存在(即使用SFTP或类似工具在TYPO3之外删除了文件): 只有第一个属性为我提供了正确的isMissing()值。属性isMissing是一个数据库值,如果存储检测到丢失的文件,就会设置该属性。在getFile上,存储检查文件是否丢失,并为文件设置“isMissing”。如果不将其持久化到数据库,则设置为在下一次调用时释放 您还可以调用$isMissing=$fileReference->getOriginalResou
FileReference
的原始文件是否仍然存在(即使用SFTP或类似工具在TYPO3之外删除了文件):
只有第一个属性为我提供了正确的
isMissing()
值。属性isMissing
是一个数据库值,如果存储检测到丢失的文件,就会设置该属性。在getFile
上,存储检查文件是否丢失,并为文件设置“isMissing”。如果不将其持久化到数据库,则设置为在下一次调用时释放
您还可以调用$isMissing=$fileReference->getOriginalResource()->getStorage()->hasFile($fileReference->getOriginalResource()->getIdentifier())代码>
如果要经常检查删除的文件,可以运行文件索引器计划程序(TYPO3\CMS\scheduler\Task\FileStorageIndexingTask
)。如果允许在外部(如ftp)更改文件,则必须执行此操作。属性isMissing
是一个数据库值,如果存储检测到丢失的文件,则会设置该属性。在getFile
上,存储检查文件是否丢失,并为文件设置“isMissing”。如果不将其持久化到数据库,则设置为在下一次调用时释放
您还可以调用$isMissing=$fileReference->getOriginalResource()->getStorage()->hasFile($fileReference->getOriginalResource()->getIdentifier())代码>
如果要经常检查删除的文件,可以运行文件索引器计划程序(TYPO3\CMS\scheduler\Task\FileStorageIndexingTask
)。如果允许在外部(如ftp)更改文件,则需要此选项。太好了,很高兴知道!您知道如何将丢失的文件替换为文件引用吗?尝试了不同的方法,但没有得到。。。将为此创建一个单独的问题。很好,很高兴知道!您知道如何将丢失的文件替换为文件引用吗?尝试了不同的方法,但没有得到。。。将为此创建一个单独的问题。
if($fileReference instanceof \TYPO3\CMS\Extbase\Domain\Model\FileReference) {
$isMissing = $fileReference->getOriginalResource()->getStorage()->getFile($fileReference->getOriginalResource()->getIdentifier())->isMissing();
$isMissing = $fileReference->getOriginalResource()->getOriginalFile()->isMissing();
$isMissing = $fileReference->getOriginalResource()->isMissing();
}