[Frage] Typo3Script Form mit mehren FileUploads und fileallowedtypes/filemaximumsize TYPO3-Version: 7.6.23

  • gatekeepa gatekeepa
    TYPO3-Anwärter
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    09. 11. 2017, 16:09

    Hallo in die Runde,

    im folgenden Formular soll es die Möglichkeit geben, null bis sechs Dateien hochzuladen, die dann per eMail versendet werden. Es sind nur Dateien vom Dateityp *.pdf mit einer maximalen Größe von 5 MB pro Datei erlaubt.

    Die folgende Abfrage funktioniert; wenn man versucht einen anderen Dateityp hochzuladen oder eine Datei die zu groß ist, wird der Fehler ausgegeben.

    Der (gekürzte) Code für das Formular sieht zur Zeit so aus:

    1. enctype = multipart/form-data
    2. method = post
    3. prefix = tx_form
    4. confirmation =
    5. postProcessor {
    6. 1 = mail
    7. 1 {
    8. recipientEmail = test@test.de
    9. senderEmail = test@test.de
    10. subject = Betreff
    11. }
    12. 2 = redirect
    13. 2 {
    14. destination = 250
    15. }
    16. }
    17. 10 = FIELDSET
    18. 10 {
    19. legend {
    20. value = Ihre Kontaktdaten
    21. }
    22. 10 = TEXTLINE
    23. 10 {
    24. type = text
    25. name = Vorname
    26. label {
    27. value = Vorname
    28. }
    29. }
    30. 20 = TEXTLINE
    31. 20 {
    32. type = text
    33. name = Nachname
    34. label {
    35. value = Nachname
    36. }
    37. }
    38. 30 = TEXTLINE
    39. 30 {
    40. type = text
    41. name = E-Mail
    42. label {
    43. value = E-Mail Adresse
    44. }
    45. }
    46. 40 = TEXTLINE
    47. 40 {
    48. type = text
    49. name = Telefon
    50. label {
    51. value = Telefon
    52. }
    53. }
    54. }
    55. ...
    56. 40 = FIELDSET
    57. 40 {
    58. 10 = HEADER
    59. 10 {
    60. class = content-header
    61. headingSize = h4
    62. content = Überschrift
    63. }
    64. 20 = FILEUPLOAD
    65. 20 {
    66. type = file
    67. name = datei1
    68. label {
    69. value = Anschreiben
    70. }
    71. }
    72. 30 = FILEUPLOAD
    73. 30 {
    74. type = file
    75. name = datei2
    76. label {
    77. value = Lebenslauf
    78. }
    79. }
    80. ...
    81. }
    82. 60 = SUBMIT
    83. 60 {
    84. type = submit
    85. name = 15
    86. value = Formular absenden
    87. }
    88. rules {
    89. 1 {
    90. showMessage =
    91. message = Benötigt
    92. error = Dies ist ein Pflichtfeld
    93. element = Vorname
    94. }
    95. 2 {
    96. showMessage =
    97. message = Benötigt
    98. error = Dies ist ein Pflichtfeld
    99. element = Nachname
    100. }
    101. 3 = email
    102. 3 {
    103. showMessage =
    104. message = (max.muster@domain.com)
    105. error = Dies ist keine gültige E-Mail-Adresse
    106. element = E-Mail
    107. }
    108. 4 = fileallowedtypes
    109. 4 {
    110. breakOnError = 0
    111. showMessage =
    112. message = (%allowedTypes)
    113. error = Bitte hängen Sie nur Dokumente mit dem Dateityp *.pdf an.
    114. types = application/pdf
    115. element = datei1
    116. }
    117. 5 = filemaximumsize
    118. 5 {
    119. breakOnError = 0
    120. showMessage =
    121. message = The file has to be smaller as %maximum
    122. error = Diese Datei ist zu groß (max 5MB).
    123. maximum = 5242880
    124. element = datei1
    125. }
    126. 6 = fileallowedtypes
    127. 6 {
    128. breakOnError = 0
    129. showMessage =
    130. message = (%allowedTypes)
    131. error = Bitte hängen Sie nur Dokumente mit dem Dateityp *.pdf an.
    132. types = application/pdf
    133. element = datei2
    134. }
    135. 7 = filemaximumsize
    136. 7 {
    137. breakOnError = 0
    138. showMessage =
    139. message = The file has to be smaller as %maximum
    140. error = Diese Datei ist zu groß (max 5MB).
    141. maximum = 5242880
    142. element = datei2
    143. }
    144. ...
    145. }

    Leider kann das Formular nicht mehr abgeschickt werden OHNE in jedem FileUpload-Feld eine Datei zu hinterlegen, ansonsten erscheint der Fehler, dass der Dateityp falsch sei.

    Wie kann ich evtl. erreichen, dass die Regeln fileallowedtypes und fileallowedtypes nur angewendet werden, wenn eine Datei im jeweiligen Feld hochgeladen wurde?

    Vielen Dank und LG!


  • 1
  • pstranghoener pstrangho...
    Die Macht
    0 x
    531 Beiträge
    24 Hilfreiche Beiträge
    15. 11. 2017, 09:59

    Hi,

    hast du schon eine Lösung für dein Problem?
    Wenn nicht pinne ich deine Frage an, damit du schnellstmöglichst eine Antwort bekommst :)

    Liebe Grüße
    Philipp

  • gatekeepa gatekeepa
    TYPO3-Anwärter
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    15. 11. 2017, 16:15

    Hallo Philipp,

    leider habe ich keine Lösung und würde mich natürlich freuen, wenn du meine Anfrage herausstellen würdest.

    Vielen Dank und LG!

  • pstranghoener pstrangho...
    Die Macht
    0 x
    531 Beiträge
    24 Hilfreiche Beiträge
    16. 11. 2017, 08:36

    Aber gerne! :)

  • 0 x
    97 Beiträge
    3 Hilfreiche Beiträge
    16. 11. 2017, 09:59

    Kann mir gut vorstellen, das du die Adresse test@test.de jetzt nur zum hier posten eingetragen hast.
    Meine aber mal gehört zu haben, dass E-Mails dann bei Stiftung Warentest landen, oder so ähnlich.
    Also auch zu Test zwecken nicht zu empfehlen (Wenn ich mich irre, bitte korrigieren).

    @pstranghoener kannst du bitte ganz oben in seiner Nachricht [code language=TypoScript] draus machen?
    (Liest sich besser :D)

    Darf ich fragen, warum du das per TypoScript löst? habe dafür eine Extension aufgesetzt.
    Bin mir jetzt nicht sicher was im Hintergrund passiert, wenn bei einer nicht existenten Datei der Typ abgefragt wird, kannst du aus types = application/pdf eine ODER abfrage machen, und den Typ der bei einer leeren Datei ermittelt wird, eintragen?
    Aber wie gesagt, habe das über eine Extension in PHP gelöst. Da sieht das etwas anderes aus.

  • gatekeepa gatekeepa
    TYPO3-Anwärter
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    17. 11. 2017, 16:56

    Hallo Power-Poler,

    die eMail-Adresse ist nur ein Platzhalter, um das Problem hier im Forum zu disktuieren; ansonsten hast du natürlich recht.

    Leider finde ich die Funktion nicht, um meinen eigenen Post zu editieren und kann daher [code language=TypoScript] nicht ändern.

    Ich setzte da an einer Lösung einer anderen Person an, die das Formular aufgesetzt hat, daher die Lösung mit Typoscript. Ich hatte auch an eine ODER-Abfrage gedacht, also dass die Funktion allowedfiletypes nur angewendet wird, falls eine Datei im Feld hochgeladen wurde. Allerdings habe ich gar keine Ahnung, wie ich das realisieren kann.

  • 0 x
    97 Beiträge
    3 Hilfreiche Beiträge
    20. 11. 2017, 10:10

    If abfragen in TypoScript habe ich so gelöst. Ob aber dein Element dieses zulässt, weiß ich nicht.
    https://www.typo3.net/forum/thematik/zeige/thema/126311/

    Ansonsten mein Datei Upload:
    https://www.typo3.net/forum/thematik/zeige/thema/126415/
    Da ist auch ein Link zum Tutorial drin, das ich verwändet habe.

  • 1