[TYPO3-german] Typo3 6.0.1 und extbase, File Uploads in Extensions

Jan Leifert jan at leifert.net
Wed Feb 6 15:30:34 CET 2013


Der Code wird denk ich in 6.0.x nicht funktionieren. In welchen Typo3 
Versionen hast du den getestet?


Am 06.02.13 13:13, schrieb Benjamin Rau:
> 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
>>
> _______________________________________________
> 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