Zum Inhalt springen

Bilder upload in eigener Extension

Erstellt am 5. September 2013 · 2 Antworten · letzte Antwort am 6. September 2013

Tags: Datei-Upload, Bilder, Frage

Huaba93 ·

Hi Leute.

Wie der Titel schon sagt, möchte ich gerne in meiner Extension es für fe_user ermöglichen, Bilder upzuloaden.
Soweit ich weiß, unterstützt extbase das noch nicht.

Also hab ich mal das Internet durchstöbert und wäre auf folgende Lösung gestoßen.
Nur leider wirft die mir immer wieder errors die ich nicht nachvollziehen kann.

z.B.: Required argument "newImage" is not set.

Hier der code im Php

    	/**
	 * action uploadImageAction
         * @param \TYPO3\KundenverwaltungFinal\Domain\Model\Image $newImage
	 * @return void
	 */
	public function uploadImageAction(\TYPO3\KundenverwaltungFinal\Domain\Model\Image $newImage){
        //$newImage = $this->request->getArgument("newImage");    
        echo "huh";
        var_dump($newImage);
            if ($_FILES['tx_kundenverwaltungfinal_Kundenverwaltungfinal']) { 
           echo "hi";
            $basicFileFunctions = t3lib_div::makeInstance('t3lib_basicFileFunctions');
            
            $fileName = $basicFileFunctions->getUniqueName (
                $_FILES['tx_kundenverwaltungfinal_Kundenverwaltungfinal']['name']['newImage']['image2'],
                t3lib_div::getFileAbsFileName('uploads/tx_kundenverwaltungfinal/')
            );
            
            t3lib_div::upload_copy_move (
                $_FILES['tx_kundenverwaltungfinal_Kundenverwaltungfinal']['tmp_name']['newImage']['image2'],
                $fileName
            );
            
            $newObject->setImage(basename($fileName));
        }
        
        $this->imageRepository->add($newImage);
        $this->redirect('list');
    }

Und hier das html

<f:form action="uploadImage"  enctype="multipart/form-data"  name="newImage" object="{newImage}">
<f:form.upload name="image2" id="image2" />
	<f:form.submit value="Create new" />
</f:form>

Ist das falsch so wie ich das mache?
Oder hätte jemand ein Beispiel für mich, wie er das gelöst hat mit einem Imageupload?

Wäre für Hilfe sehr dankbar.
lg chris

9pm ·

Hey!

Wenn ich nach deiner Fehlermeldung gehe die du angegeben hast, sieht es so aus als wird kein Argument übergeben und somit hat deine Funktion kein Objekt "newImage", welches ja benötigt wird. Hast du die Möglichkeit zu debuggen? Ich würde jedem empfehlen zu debuggen, denn so findet man meist schnell einen Fehler.

Wenn das Formular aufgerufen wird, erstellst du dann auch ein neues, leeres Objekt "newImage"? Genauso wie es beim Extbase-Standard new/create gemacht wird.

Gib deiner Form mal ein

method="post"

mit.

Ansonsten würde ich dir noch raten dem Namespacing treu zu bleiben und auch "t3lib_div" auf

\TYPO3\CMS\Core\Utility\GeneralUtility

abzuändern. 😉

VG