Sinnvollerweise überschreibt man zusätzlich die Methode errorAction, um zu große Dateiuploads abzufangen - zumindest in TYPO3 4.5 eine gute Variante um an diesen Fehlerfall zu kommen.

Patrick

On Wed, 06 Feb 2013 13:13:38 +0100, Benjamin Rau <r...@codearts.at> wrote:

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 <ephr...@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" <j...@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@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@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german




--
Patrick Schriner
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an