我想强制用户上传方形图片。我的意思是正方形的宽度和高度相等。
在 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/