Extbase - Datei Upload ohne FAL

Aus Wikizone
Wechseln zu: Navigation, Suche

https://forum.typo3.org/index.php/t/205140/

Habe einmal folgende Lösung gefunden: Nutzt aber kein FAL!

in deinem Domain model wo das Bild zugeordnet sein soll:

const UPLOAD_TARGET = 'fileadmin/userimages/';

/**
* Sets the userimage
*
* @param \array $userimage
* @return void
*/
public function setUserimage($userimage) {
    $date = new \DateTime();
    $basicFileFunctions = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Core\Utility\File\BasicFileUtility');
    $types = Array('image/png' => 'png', 'image/jpeg' => 'jpg', 'image/jpeg' => 'jpeg', 'image/gif' => 'gif');
    $fileName = $basicFileFunctions->getUniqueName( 
        $basicFileFunctions->cleanFileName($date->getTimestamp().'_'.$userimage['name']),
        \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName(self::UPLOAD_TARGET)
    );
    if ($userimage['size'] <= 0) {
        $error = 'Upload fehlgeschlagen';
    } elseif( !array_key_exists($userimage['type'], $types) ) {
        $error = 'Das Bild hat ein ungültiges Format';
    } else {
        if ( \TYPO3\CMS\Core\Utility\GeneralUtility::upload_copy_move( $userimage['tmp_name'], $fileName) ) {
        $this->userimage = basename($fileName);
    }
}

}

Dann kannst du im Formular das ganz einfach hochladen mit

<f:form.upload property="daten.userimage" />


Ist sicher nicht perfekt. Zum Beispiel zum error reporting etc. Aber vielleicht hilft es. Denke man kann das ganze sicher noch umbauen das es auch mit FAL funktioniert.