gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 03:38:27 24 4
gpt4 key购买 nike

我想用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',
],
];
}

Controller Action :

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

最佳答案

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

public function rules() {
return [
...
['myAttributeWithLocalFilePath', function ($attribute, $params) {
if (!file_exists($this->$attribute)) {
$this->addError($attribute, 'myAttributeWithLocalFilePath has no valid file path.');
}
}],
...
];
}

当然,您可以做进一步的检查:属性是否为空(尽管您可以为此使用所需的验证器)或文件是否为空。只要您不想构建一个可重用的、可配置的或复杂的验证工具,通过它自己的类(派生自 Validator)实现,内联验证就足够了。

更多信息 here .

关于file - 如何在 Yii2 框架中验证现有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32702800/

24 4 0
文章推荐: jquery-mobile - 如何避免 jQuery 菜单在打开时滚动到顶部
文章推荐: python - django - 当指定字段更改时如何自定义模型保存方法
文章推荐: python - 使用逻辑 pandas 进行多重索引和掩码
文章推荐: perl - 如何最好地解析/拆分基于
标签的
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com