TYPO3 6.2 - как создать FileReference во внешнем интерфейсе (FE)?

У меня есть гипотетическаяZoo расширение, в котором яAnimal модель сphoto field и FrontEnd (FE) с типичными действиями CRUD.photo поле типично FALFileReference и он отлично работает в бэкэнде (BE) с общей конфигурацией IRA TCA.

Я могу успешно загрузить файл в хранилище, это видно вFilelist модуль, и я могу использовать его в BE во время редактирования животных, в любом случае я не могу создатьFileReference в моем плагине FE.

Мой текущий подход выглядит так:

/**
 * @param \Zoo\Zoo\Domain\Model\Animal $animal
 */
public function updateAction(\Zoo\Zoo\Domain\Model\Animal $animal) {

    // It reads proper uploaded `photo` from form's $_FILES
    $file = $this->getFromFILES('tx_zoo_animal', 'photo');

    if ($file && is_array($file) && $file['error'] == 0) {

        /** @type  $storageRepository \TYPO3\CMS\Core\Resource\StorageRepository */
        $storageRepository = GeneralUtility::makeInstance('\TYPO3\CMS\Core\Resource\StorageRepository');
        $storage = $storageRepository->findByUid(5); // TODO: make target storage configurable

        // This adds uploaded file to the storage perfectly
        $fileObject = $storage->addFile($file['tmp_name'], $storage->getRootLevelFolder(), $file['name']);

        // Here I stuck... below line doesn't work (throws Exception no. 1 :/)
        // It's 'cause $fileObject is type of FileInterface and FileReference is required
        $animal->addPhoto($fileObject);

    }

    $this->animalRepository->update($animal);
    $this->redirect('list');
}

в любом случае попытка создать ссылку по этой строке вызывает исключение:

$animal->addPhoto($fileObject);

Как я могу решить это?

Проверено:DataHandler подход (ссылка на сайт) также не будет работать, так как он недоступен для пользователей FE.

TL; DR

Как добавитьFileReference вAnimal модель из существующей (только что созданной) записи FAL?

Ответы на вопрос(3)

Ваш ответ на вопрос