TYPO3 - Extbase - обнаружение отсутствующих файлов для заданной FileReference - PullRequest
0 голосов
/ 04 марта 2019

Я пробовал три разных способа определить, существует ли еще оригинальный файл FileReference (т. Е. Файл был удален вне TYPO3 с использованием SFTP или аналогичного):

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() значение.

1 Ответ

0 голосов
/ 04 марта 2019

Свойство isMissing является значением базы данных, которое устанавливается, если хранилище обнаруживает отсутствующий файл.На getFile хранилище проверяет, отсутствует ли файл, и устанавливает для него значение isMissing.Если вы не сохраните это в базе данных, настройка будет потеряна при следующем вызове.

Вы также можете позвонить $isMissing = $fileReference->getOriginalResource()->getStorage()->hasFile($fileReference->getOriginalResource()->getIdentifier());

Вы можете запустить планировщик индексатора файлов (TYPO3\CMS\Scheduler\Task\FileStorageIndexingTask)если вы хотите часто проверять наличие удаленных файлов.Это должно потребоваться, если вы разрешаете внешнее изменение файлов (например, ftp).

...