Formulare mit Datei-Upload
==========================

Datei-Uploads im TYPO3-Frontend sind immer eine komplexe Aufgabe. Das liegt zum einen daran, daß man zumeist nicht nur den Uploads implementieren muss. Meist wird auch eine Möglichkeit benötigt, die Dateien im Anschluß zu ersetzen bzw. wieder zu löschen. Somit implementiert man also einen kompletten CRUD-Zyklus für die Dateien.

Zum anderen müssen die hochgeladenen Dateien bei der Verwendung von DAM bzw. seit TYPO3 6.2 von FAL nach dem Upload indexiert werden und per Referenz mit dem Basisdatensatz verbunden werden.

Für ameos_formible gab es das Renderlet [UPLOAD](https://wiki.typo3.org/Formidable#renderlet:UPLOAD). Dieses legt die hochgeladenen Dateien nach dem alten TYPO3-Schema als kommaseparierte Liste im Basis-Datensatz ab. Für die Verwendung von DAM wurde in mkforms das Widget **DAMUPLOAD** eingeführt. Dieses wurde später erweitert und unterstützt nun auch FAL. In diesem Zuge wurde das Widget in **MEDIAUPLOAD** umbenannt. Die Bezeichnung DAMUPLOAD ist noch möglich, sollte aber nicht mehr genutzt werden.

Die hier beschriebenen Uploads verwenden ausschließlich die aktuelle FAL-Unterstützung. Sie sollten aber eigentlich auch noch in alten 4.5er Installationen mit DAM funktionieren.


Upload einer einzelnen Datei
----------------------------

Nehmen wir an, zu einem Firmen-Datensatz soll der User ein Logo hochladen können. Das Feld ist in der TCA mit folgenden Werten konfiguriert:

```php
		'logo' => \Sys25\RnBase\Utility\TSFAL::getMediaTCA('logo', array(
				'label' => 'LLL:EXT:myext/Resources/Private/Language/locallang_db.xml:label_tx_myext_company_logo',
				'config' => array('size' => 1, 'maxitems' => 1),
		)),
```

Für den Upload benötigen wir neben dem Upload-Widget noch eine Anzeige des Bilds und einen Delete-Button.

To be continued...

