Extbase - Datei Upload ohne FAL: Unterschied zwischen den Versionen
Aus Wikizone
(Die Seite wurde neu angelegt: „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 so…“) |
|||
| Zeile 14: | Zeile 14: | ||
*/ | */ | ||
public function setUserimage($userimage) { | public function setUserimage($userimage) { | ||
| − | $date = new \DateTime(); | + | $date = new \DateTime(); |
| − | + | $basicFileFunctions = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Core\Utility\File\BasicFileUtility'); | |
| − | $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'); |
| − | $types = Array('image/png' => 'png', 'image/jpeg' => 'jpg', 'image/jpeg' => 'jpeg', 'image/gif' => 'gif'); | + | $fileName = $basicFileFunctions->getUniqueName( |
| − | + | $basicFileFunctions->cleanFileName($date->getTimestamp().'_'.$userimage['name']), | |
| − | $fileName = $basicFileFunctions->getUniqueName( | + | \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName(self::UPLOAD_TARGET) |
| − | $basicFileFunctions->cleanFileName($date->getTimestamp().'_'.$userimage['name']), | + | ); |
| − | \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName(self::UPLOAD_TARGET) | + | if ($userimage['size'] <= 0) { |
| − | ); | + | $error = 'Upload fehlgeschlagen'; |
| − | if ($userimage['size'] <= 0) { | + | } elseif( !array_key_exists($userimage['type'], $types) ) { |
| − | $error = 'Upload fehlgeschlagen'; | + | $error = 'Das Bild hat ein ungültiges Format'; |
| − | } elseif( !array_key_exists($userimage['type'], $types) ) { | + | } else { |
| − | $error = 'Das Bild hat ein ungültiges Format'; | + | if ( \TYPO3\CMS\Core\Utility\GeneralUtility::upload_copy_move( $userimage['tmp_name'], $fileName) ) { |
| − | } else { | + | $this->userimage = basename($fileName); |
| − | if ( \TYPO3\CMS\Core\Utility\GeneralUtility::upload_copy_move( $userimage['tmp_name'], $fileName) ) { | + | } |
| − | $this->userimage = basename($fileName); | ||
| − | } | ||
} | } | ||
Version vom 22. Oktober 2015, 10:43 Uhr
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.