[Frage] Dateiupload wirft Exeption, Array wird nicht richtig gemappt TYPO3-Version: 7.6.22

  • toosha toosha
    Typ im Roten Hemd
    0 x
    3 Beiträge
    0 Hilfreiche Beiträge
    12. 04. 2018, 20:34

    Hallo zusammen

    Ich versuche gerade eine eigene Extension mit einem Fileupload zu ergänzen. Der View ist, wie ich annehme, fehlerfrei. Trotzdem der betroffene Abschnitt:
    [code]<f:form action="upload" enctype="multipart/form-data" name="uploadCSV" object="{uploadCsv}" method="post" controller="Export">
    <f:form.hidden name="action" value="upload" />
    <:form.hidden name="controller" value="Export" />
    <f:form.upload property="file" />
    <f:form.submit value="Hochladen" />
    </f:form>
    [/code]
    Übergeben wird also an den ExportController bzw. die uploadAction.
    Da ich den Upload ohne FAL machen möchte, habe ich eine initializeAction, die mir das mappen übernimmt:
    [code]/**
    * initialize action
    */
    public function initializeAction() {
    if ($this->arguments->hasArgument('uploadCsv')) {
    $this->arguments->getArgument('uploadCsv')->getPropertyMappingConfiguration()->setTargetTypeForSubProperty('file', 'array');
    }
    }
    [/code]
    Die uploadAction verlangt dann ein Object wie folgt:
    [code]/**
    * action upload
    *
    * @param \Tx_Calendarassistant_Domain_Model_Export $uploadCsv
    * @return void
    */
    public function uploadAction(\Tx_Calendarassistant_Domain_Model_Export $uploadCsv) {
    ...
    }
    [/code]
    Allerdings wirft Extbase vorher eine Exeption:
    #1298012500: Required argument "uploadCsv" is not set for OLGHTK\Calendarassistant\Controller\ExportController->upload.
    Ich habe einige Beispiele auf meiner Lösungssuche im Internet gefunden, die aber alle in Grunde gleich aussehen. Was könnte ich übersehen haben?

    Danke für jeglichen Tipp.
    Gruss
    Thomas


  • 1
  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    2812 Beiträge
    103 Hilfreiche Beiträge
    13. 04. 2018, 08:50

    Hallo Thomas.

    Fileuploads aus dem FE sind etwas tricky mit Extbase.

    Ein recht gutes Beispiel hat Helmut Hummel in seinem Blog (http://insight.helhum.io/post/85015526410/file-upload-using-extbase-and-fal-in-typo3-62) erklärt und eine Beispiel-Extension auf GitHub bereitgestellt: https://github.com/helhum/upload_example

    Hab Deinen Code nicht groß angeguckt (Leider ist die code-Formatierung hier im Forum auch nach rund einem Jahr noch immer kaputt und erschwert so das Lesen). Helmut verbaut aber einiges mehr als Klassen bzw. Methoden. Anhand seines Beispiels läuft bei mir ein Upload erfolgreich.

    Viele Grüße aus Würzburg
    Julian

  • freeatweb freeatweb
    Sternenflotten-Admiral
    0 x
    235 Beiträge
    4 Hilfreiche Beiträge
    18. 04. 2018, 10:49

    Hallo,

    File-Uploads im FE löse ich immer mittels der Extension "Media_upload" (https://github.com/fabarea/media_upload)

    Die Extension liefert eine gute Anleitung für deren Implementierung.

    Lg

  • 1