如何在Yii2框架中验证现有文件

时间:2015-09-21 19:07:56

标签: file validation yii2

我想在现有文件上使用FileValidator - 如何做到这一点? 据我所知,FileValidator仅适用于UploadedFile类的实例。如果我的文件已经上传,如何验证?

有一些很好的解决方案,或者我必须编写自己的ExistingFileValidator?

修改:更多详情: 我想以这种方式在我的模型中做到这一点:

模型规则:

public function rules()
{
    return [
        [['myExistingFile'], 'file',
            'maxSize' => self::MAX_SIZE,
            'tooBig' => 'msg',
            'minSize' => self::MIN_SIZE,
            'tooSmall' => 'msg',
            'extensions' => self::VALID_EXTENSIONS,
            'mimeTypes' => self::VALID_MIME_TYPES,
            'wrongExtension' => 'msg',
            'wrongMimeType' => 'msg',
        ],
    ];
}

控制器操作:

public function actionFoo()
{
    $model->myExistingFile = 'path/to/file.ext';
    if (!$model->validate()) {
        // file is invalid
    }
}

3 个答案:

答案 0 :(得分:2)

一个简单的内联验证器就足够了:

String date = getIntent().getExtra().getString("passdate");

当然,您可以进行进一步检查:如果属性为空(尽管您可以使用必需的验证器)或文件为空。只要您不想构建可重用,可配置或复杂的验证工具,即使用自己的类(从Validator派生)实现,内联验证就足够了。

更多信息here

答案 1 :(得分:0)

'skipOnEmpty' => false,
规则

中的

答案 2 :(得分:0)

请访问此链接:

link:Server Side file validation Don't work in Yii.2.0

我已经解释了解决方案