验证上传文件时不允许任何文件 - CakePHP 2

时间:2017-12-15 14:53:48

标签: php file validation cakephp cakephp-2.0

我正在为文章上传图片,在模型中,我为此图片设置了一些验证规则。

//View
$this->Form->input('Post.image');

//Model Post
public $validate = array(
    'image' => array(
        'extension' => array(
            'rule' => array('extension', array('jpeg', 'jpg', 'png', 'gif', 'bmp')),
            'message' => "L'extension de l'image envoyée n'est pas valide"
        ),
        'uploadError' => array(
            'rule' => array('uploadError', true),
            'message' => "Une erreur est survenue lors de l'upload de l'image"
        ),
        'mimeType' => array(
            'rule' => array('mimeType', array('image/png', 'image/jpeg', 'image/jpeg', 'image/jpeg', 'image/gif', 'image/bmp')),
            'message' => "Type de l'image invalide"
        ),
        'fileSize' => array(
            'rule' => array('fileSize', '<=', '2MB'),
            'message' => "La taille de l'image ne doit pas dépasser 2MB"
        )
    )
);

图片不是required,但在html视图中生成的输入包含required属性,我通过在每个规则上添加allowEmpty => true来解决此问题。但是,验证仍未通过!

我该如何解决这个问题?

谢谢

1 个答案:

答案 0 :(得分:0)

您是否应该包含'required' => false而不是使用'allowEmpty' => true?根据我对CookBook regarding allowEmpty的理解,它通过运行!empty($value) || is_numeric($value)进行检查,而提交File输入将导致生成数组。因此,$value仍然是正确的,并且根据当前的验证规则仍然是必需的。

希望至少能以任何方式为您提供帮助。