php - yii2 中的方形图像

标签 php validation yii2

我想强制用户上传方形图片。我的意思是正方形的宽度和高度相等。 在 yii2 的核心验证器中,我们有具有以下定义的 image 类型:

['primaryImage', 'image', 'extensions' => 'png, jpg',
        'minWidth' => 100, 'maxWidth' => 1000,
        'minHeight' => 100, 'maxHeight' => 1000,
],

现在,如果我想使用支持客户端验证器的自定义验证器,我应该做什么。请限制用户上传我的强制宽度和高度,只是想强制该图像为正方形。

最佳答案

您可以扩展ImageValidator:

class ImageSquareValidator extends ImageValidator
{
    /**
     * @inheritdoc
     */
    protected function validateImage($image)
    {
        if (false === ($imageInfo = getimagesize($image->tempName))) {
            return [$this->notImage, ['file' => $image->name]];
        }

        list($width, $height) = $imageInfo;

        if ($width !== $height) {
            return [Yii::t('yii', 'The image "{file}" is not square.'), ['file' => $image->name]];
        }

        return parent::validateImage($image);
    }
}

在客户端验证中,您可以使用 this示例。

关于php - yii2 中的方形图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34992957/

相关文章:

php - 处理php时出错

angular - 初始化后如何将Validators设置为FormGroup

java - 将只读字符串插入 jTextArea

yii2 - 渲染 View Yii2

mysql - 尝试使用 Yii2 从纯 PHP 迁移 SQL 命令

yii - Yii 2 中的应用程序文件重组

php - 为什么我不能在我的 mysql 数据库中查看外语字符?

php - Laravel 5:调用未定义的方法 Illuminate\Database\Eloquent\Collection::exists()

php - Symfony 中的 index.php 文件在哪里?

Hibernate Validator 的 Spring Web MVC 验证不会在 BindingResult 中绘制错误