Forms Typo3表单验证-允许的文件类型和最大文件大小

Forms Typo3表单验证-允许的文件类型和最大文件大小,forms,typo3,Forms,Typo3,是否可以验证typo3(vers.7.6.23)表单中允许的文件类型(在我的示例中仅为*.pdf)和最大文件大小(在我的示例中最大为5mb)?也许有规则功能 我的表单如下所示: enctype = multipart/form-data method = post prefix = tx_form confirmation = postProcessor { 1 = mail 1 { recipientEmail = xxx@xxx.de sen

是否可以验证typo3(vers.7.6.23)表单中允许的文件类型(在我的示例中仅为*.pdf)和最大文件大小(在我的示例中最大为5mb)?也许有规则功能

我的表单如下所示:

enctype = multipart/form-data
method = post
prefix = tx_form
confirmation = 
postProcessor {
    1 = mail
    1 {
        recipientEmail = xxx@xxx.de
        senderEmail = formmailer@xxx.de
        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 = (max.muster@domain.com)
        error = Dies ist keine gültige E-Mail-Adresse
        element = E-Mail
    }
}
更新

感谢您向我介绍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字段,所以我为每个字段添加了这两条规则。现在查询可以正常工作了,当我上传错误的文件类型或大于5MB的文件时,我会收到一个错误


唯一的问题是,我不能让FileUpload字段为空;我总是遇到“错误的文件类型”错误。

您可以使用下面的打字脚本

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
        }
       }
    }
}

感谢您为我指明了fileallowedtypes和filemaximumsize的方向。我在规则中添加了这两个查询,但似乎fileallowedtypes在没有上传文件时也会提示错误消息。在我的例子中,用户应该可以选择将所有或部分文件上载字段留空。