Короче говоря:
В последней итерации
for(int i = 0; i<=name.length; i++) {
i
будет равно name.length
, что является незаконным индексом, так как индексы массива равны нулю, основанный.
Ваш код должен читать
for(int i = 0; i < name.length; i++)
^
Свойство isMissing
является значением базы данных, которое устанавливается, если хранилище обнаруживает отсутствующий файл. На getFile
хранилище проверит, отсутствует ли файл, и установите для него «isMissing». Если вы не сохраните это в базе данных, настройка будет потеряна при следующем вызове.
Вы также можете позвонить $isMissing = $fileReference->getOriginalResource()->getStorage()->hasFile($fileReference->getOriginalResource()->getIdentifier());
Вы можете запустить планировщик индексатора файлов (TYPO3\CMS\Scheduler\Task\FileStorageIndexingTask
), если хотите часто проверять наличие удаленных файлов. Это должно быть необходимо, если вы разрешите внешнее изменение файлов (например, ftp).