2017-11-06 9 views
0

許可されているファイルタイプ(私の例では* .pdf)と最大ファイルサイズ(この例ではtypo3(7.6.23)最大5MB)?たぶん、ルール機能ですか?Typo3フォーム検証 - 許可されたファイルタイプと最大ファイルサイズ

私のフォームは次のようになります。

enctype = multipart/form-data 
method = post 
prefix = tx_form 
confirmation = 
postProcessor { 
    1 = mail 
    1 { 
     recipientEmail = [email protected] 
     senderEmail = [email protected] 
     subject = email subject 
    } 
} 
... 
40 = FIELDSET 
40 { 
    20 = FILEUPLOAD 
    20 { 
     type = file 
     name = Anschreiben 
     label { 
      value = Anschreiben 
     } 
    } 
} 
... 

rules { 
    1 = required 
    1 { 
     showMessage = 
     message = Benötigt 
     error = Dies ist ein Pflichtfeld 
     element = Vorname 
    } 
    2 = required 
    2 { 
     showMessage = 
     message = Benötigt 
     error = Dies ist ein Pflichtfeld 
     element = Nachname 
    } 
    3 = email 
    3 { 
     showMessage = 
     message = ([email protected]) 
     error = Dies ist keine gültige E-Mail-Adresse 
     element = E-Mail 
    } 
} 

UPDATE

はFileAllowedTypesValidatorとFileMaximumSizeValidatorに向けて、私を指してくれてありがとう。

私はルールにアイデアを追加してみました:

rules { 

    4 = fileallowedtypes 
     4 { 
       breakOnError = 0 
       showMessage = 
       message = (%allowedTypes) 
       error = only pdf please! 
       types = application/pdf 
       element = Anschreiben 
     } 
    5 = filemaximumsize 
     5 { 
       breakOnError = 0 
       showMessage = 
       message = The file has to be smaller as %maximum 
       error = file is too big! 
       maximum = 5242880 
       element = Anschreiben 
     } 

} 

私は複数のFileUpload-フィールドを持っているので、私はすべての分野のもの2つのルールを追加しました。クエリが正常に動作し、間違ったファイルタイプまたは5 MBを超えるファイルをアップロードするとエラーが発生します。

問題は、FileUpload-Fieldsを空のままにしておくことができないことです。私はいつも "間違ったファイルタイプ"のエラーを取得します。

答えて

0

以下のtyposcriptを使用できます。

plugin.tx_form { 
    settings { 
     registeredValidators { 
     fileallowedtypes { 
      displayName = Allowed mimetypes for file 
      className = TYPO3\CMS\Form\Domain\Validator\FileAllowedTypesValidator 
     } 

     filemaximumsize { 
      displayName = Maximum size for file (bytes) 
      className = TYPO3\CMS\Form\Domain\Validator\FileMaximumSizeValidator 
     } 
     } 
    } 
} 
+0

私をfileallowedtypesとfilemaximumsizeの方向に向けていただきありがとうございます。これらの2つのクエリーをルールに追加しましたが、fileallowedtypesは、ファイルがアップロードされていないときにもエラーメッセージを表示するように思われます。私の場合、ユーザは、すべてまたはいくつかのファイルアップロードフィールドを空にするオプションを持っているはずです。 – marc

関連する問題