簡體   English   中英

TYPO3-Extbase-檢測給定FileReference的丟失文件

[英]TYPO3 - Extbase - Detect missing files for a given FileReference

我嘗試了三種不同的方法來檢測FileReference的原始文件是否仍然存在(即,該文件已使用SFTP或類似方法在TYPO3外部刪除):

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

只有第一個給我正確的isMissing()值。

isMissing屬性是一個數據庫值,如果存儲設備檢測到丟失的文件,則會設置該值。 getFile的存儲上,檢查文件是否丟失,然后為文件設置“ isMissing”。 如果您不將其保留到數據庫中,則在下一次調用時該設置將變得松散。

您還可以調用$isMissing = $fileReference->getOriginalResource()->getStorage()->hasFile($fileReference->getOriginalResource()->getIdentifier());

如果要經常檢查已刪除的文件,可以運行文件索引器調度程序( TYPO3\\CMS\\Scheduler\\Task\\FileStorageIndexingTask )。 如果您允許外部更改文件(例如ftp),則應該這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM