File-Upload: Wie geht das?

  • robsch robsch
    T3PO
    0 x
    22 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2012, 17:49

    Hi,

    weiß irgendwer, wie man im BE einen Benutzer eine Textdatei hochladen lassen kann? Ich verstehe mal wieder gar nichts. Ich hätte gedacht, mit f:form.upload geht das ganz leicht.

    http://typo3blogger.de/extbase-file-upload/ hatte ich auch schon gelesen. Aber irgendwie bringt mich das gar nicht weiter. Muss das form-Element ein object-Attribut haben (vielleicht ist das eine blöde Frage...)? D.h. brauche ich ein Modellobjekt, dem da etwas zugewiesen wird? Ist das der Dateiname?

    Hat wer vielleicht ein ganz einfaches Beispiel?

    Danke,
    Robert


  • 1
  • rayphi rayphi
    Padawan
    0 x
    58 Beiträge
    0 Hilfreiche Beiträge
    15. 08. 2012, 09:44

    Mal ganz schlicht gehalten da ich auch nicht mehr aus deiner Frage entnehmen kann

    Mit bestem Gruß
    Rayphi

    1. ----- Controller -----
    2. /**
    3.   * action new
    4.   *
    5.   * @param Tx_ExtKey_Domain_Model_ModelName $newModelObject
    6.   * @dontvalidate $newModelObject
    7.   * @return void
    8.   */
    9. public function newAction(Tx_ExtKey_Domain_Model_ModelName $newModelObject = NULL) {
    10. if ($newModelObject == NULL) { // workaround for fluid bug ##5636
    11. $newModelObject = t3lib_div::makeInstance('Tx_ExtKey_Domain_Model_ModelName');
    12. }
    13. $this->view->assign('newModelObject', $newModelObject);
    14. }
    15.  
    16. /**
    17.   * action create
    18.   *
    19.   * @param Tx_ExtKey_Domain_Model_ModelName $newModelObject
    20.   * @dontvalidate $newModelObject
    21.   * @return void
    22.   */
    23. public function createAction(Tx_Atohtmlexport_Domain_Model_StaticHtmlExport $newModelObject) {
    24. if ($_FILES['tx_extkey_tools_extkeyextkey']) {
    25. $basicFileFunctions = t3lib_div::makeInstance('t3lib_basicFileFunctions');
    26.  
    27. $fileName = $basicFileFunctions->getUniqueName(
    28. $_FILES['tx_extkey_tools_extkeyextkey']['name']['newModelObject']['fileName'],
    29. t3lib_div::getFileAbsFileName('uploads/tx_extkey/'.$fileName));
    30.  
    31. t3lib_div::upload_copy_move(
    32. $_FILES['tx_extkey_tools_extkeyextkey']['tmp_name']['newModelObject']['fileName'],
    33. $fileName);
    34.  
    35. $newModelObject->setFileName(basename($fileName));
    36. }
    37. $this->modelObjectRepository->add($newModelObject);
    38. $this->redirect('list');
    39. }
    40.  
    41. ----- Model -----
    42. /**
    43.   * @var string
    44.   * @validate NotEmpty
    45.   */
    46. protected $fileName;
    47.  
    48. /**
    49.   * Returns the fileName
    50.   *
    51.   * @return string $fileName
    52.   */
    53. public function getFileName() {
    54. return $this->fileName;
    55. }
    56.  
    57. /**
    58.   * Sets the fileName
    59.   *
    60.   * @param string $fileName
    61.   * @return void
    62.   */
    63. public function setFileName($fileName) {
    64. $this->fileName = $fileName;
    65. }

    1. ----- View -----
    2. <f:form action="create" enctype="multipart/form-data" name="newModelObject" object="{newModelObject}">
    3. <label for="fileName">
    4. <f:translate key="tx_extkey_domain_model_modelname.file_name" /> <span class="required">(required)</span>
    5. </label><br />
    6. <f:form.upload property="fileName" /><br />
    7. <f:form.submit value="Create new" />
    8. </f:form>

  • 1