[TYPO3-german] Typo3 6.0.1 und extbase, File Uploads in Extensions
Benjamin Rau
rau at codearts.at
Wed Feb 6 13:13:38 CET 2013
Hi Jan.
Also mein Upload sieht in Auszügen so aus:
/**
* action update
*
* @param Tx_Hcobjects_Domain_Model_Profile $profile
* @return void
*/
public function updateAction(Tx_Hcobjects_Domain_Model_Profile $profile) {
[...]
if ($_FILES['tx_hcprofiles_clubs'] ) {
$basicFileFunctions = t3lib_div::makeInstance('t3lib_basicFileFunctions');
$files = $_FILES['tx_hcprofiles_clubs'];
$fileName = $basicFileFunctions->getUniqueName(
$basicFileFunctions->cleanFileName($files['name']['profile']['image']),
t3lib_div::getFileAbsFileName($profile->getBasePath())
);
$types = Array('image/png' => 'png', 'image/jpeg' => 'jpg', 'image/jpeg' => 'jpeg', 'image/gif' => 'gif');
if($files['name']['profile']['image']=='') {
$error = "Keine Datei ausgewählt";
} elseif(!$files) {
$error = "Dateien für nicht unterstützte Extension hochgeladen";
} elseif($files['profile']['image']['error'] != 0) {
$error = 'Allgemeiner Fehler beim Hochladen des Bildes';
} elseif(array_key_exists($_FILES['tx_hcprofiles_clubs']['profile']['image']['type'], $types)) {
$error = 'Das Sponsor Logo hat ein ungültiges Format';
} elseif($basicFileFunctions->checkIfAllowed($_FILES['tx_hcprofiles_clubs']['profile']['image']['type'],t3lib_div::getFileAbsFileName($profile->getBasePath()),$fileName)) {
$error = "Fileextension not allowed by configuration";
} else {
t3lib_div::upload_copy_move(
$files['tmp_name']['profile']['image'],
$fileName);
$profile->setImage(basename($fileName));
}
}
[...]
$this->profileRepository->update($profile);
$this->flashMessageContainer->add('Your Profile was updated.');
}
Gruß Benny
Am 06.02.2013 um 09:50 schrieb Ephraim Härer <ephraim at ephespage.de>:
> Hallo,
> ich würde mal in der aktuellen Powermail-Verison nachschauen,
> dort ist soweit ich weiß der Fileupload implementiert.
>
>
> MfG
> E. Härer
>
> Am 06.02.2013 02:40, schrieb Jan Leifert:
>> Hallo Benny,
>> den Eindruck das extbase das nicht kann habe ich auch. Weil man wirklich
>> nirgendwo was zu dem Thema findet.
>>
>> Aber warum werden $_FILES von extbase dann überhaupt verarbeitet?? Wenn
>> der RequestDispatcher die in Ruhe lassen würde würd das alte Beispiel
>> von typo3blogger.de funktionieren?!
>>
>> Das hier hab ich noch gefunden:
>>
>> http://forge.typo3.org/issues/5718
>>
>> letzter Eintrag:
>>
>> "Set this to 'on hold' because we have to wait until the new property
>> mapper can finally be used securely. This will be done for 6.1."
>>
>>
>> :-/ Ätzend!!
>>
>> Ich glaub das $_FILES angefasst wird ist ein Code Rest davon und ich bau
>> es bei mir aus. Dann müsste die Lösung von typo3blogger.de funktionieren.
>>
>>
>> Am 05.02.13 22:56, schrieb Benjamin Rau:
>>> Hallo jan.
>>>
>>> Extbase kam meines Wissens nach nativ noch keinen File upload handeln.
>>>
>>> Du musst sie Speicherung selber schreiben, beispielsweise mir den pibase
>>> Klassen.
>>>
>>> Danach den Dateinamen im Model setzen.
>>>
>>> Gruß Benny
>>> Am 05.02.2013 22:27 schrieb "Jan Leifert" <jan at leifert.net>:
>>>
>>>> Hallo,
>>>>
>>>> ich such mich grade blöd für Beispiele von einem Dateiupload in einer
>>>> extbase extension. Das einzige was ich zu finde ist das hier:
>>>>
>>>> http://typo3blogger.de/**extbase-file-upload/<http://typo3blogger.de/extbase-file-upload/>
>>>>
>>>>
>>>> Das Beispiel ist aber alt und funktioniert mit aktuellen extbase
>>>> Versionen
>>>> nicht mehr.
>>>>
>>>> Das Problem scheint zu sein das extbase die Form-Inhalte schon
>>>> automatisch
>>>> auf das Model mapped, also versucht die Inhalte von $_FILES an meine
>>>> setImage Funktion zu übergeben. Die erwartet aber einen Dateinamen als
>>>> String und kein Array.
>>>>
>>>> Ich vermut ja fast ich habe einfach den falschen Datentyp gewählt. Aber
>>>> Experimente mit Tx_Extbase_Domain_Model_File haben mich auch nicht
>>>> weitergebracht.
>>>>
>>>> Grüße,
>>>> Jan Leifert
>>>>
>>>> ______________________________**_________________
>>>> TYPO3-german mailing list
>>>> TYPO3-german at lists.typo3.org
>>>> http://lists.typo3.org/cgi-**bin/mailman/listinfo/typo3-**german<http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german>
>>>>
>>>>
>>>>
>>> _______________________________________________
>>> TYPO3-german mailing list
>>> TYPO3-german at lists.typo3.org
>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>>
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>
More information about the TYPO3-german
mailing list