Ich habe die hypothetische Zoo
Erweiterung, in der ich Animal
Modell mit photo
Feld und FrontEnd (FE) -Plugin mit typischen CRUD-Aktionen habe. photo
Feld ist typisch FAL's FileReference
und es funktioniert perfekt im Backend (BE) mit gemeinsamen TCA IRRE Config.TYPO3 6.2 - wie erstellt man FileReference im Frontend (FE)?
Ich bin in der Lage zu erfolgreichen Upload die Datei auf die Speicher, dann ist es sichtbar im Liste der Dateien Modul, und ich kann es in BE während meiner Tier Bearbeitung verwenden, trotzdem kann ich nicht erstellen FileReference
In meiner FE-Plugin.
Mein aktueller Ansatz sieht wie folgt aus:
/**
* @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');
}
ohnehin versuchen Referenz durch diese Linie zu erstellen wirft Ausnahme:
$animal->addPhoto($fileObject);
Wie kann ich dieses Problem lösen?
Geprüft: DataHandler
Ansatz (link) funktioniert auch nicht, da es für FE-Benutzer nicht verfügbar ist.
TL; DR
Wie FileReference
-Animal
Modell aus bestehenden (gerade erstellt) FAL Datensatz hinzufügen?
Haben Sie http://insight.helhum.io/post/85015526410/file-upload-using-extbase-and-fal-in-typo3-6-2 überprüfen - es ist ein anderer Ansatz als Ihr Code in 'uploadAction', da ein generischer Typconverter verwendet wird, um Ihre hochgeladene Datei (oder Dateien) in ein Objekt zu konvertieren, das direkt beim Erstellen Ihres 'Animal'-Modells verwendet wird. Funktioniert perfekt in FE und BE. – derhansen
@derhansen thx, das ist das erste, was du beim googeln siehst, TBH, ich war der Hoffnung, es gibt eine einfachere Lösung für solch ein ... einfaches Ding, wie auch immer ich sehen kann, muss ich tiefer in Helmuts Arbeit eintauchen. – biesior