Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TYPO3-Extbase-检测给定文件引用的缺失文件_Typo3_Extbase_Filereference - Fatal编程技术网

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();
}