[英]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.