在后端 Octobercms 中验证文件上传(图像尺寸)
Validating fileupload(image Dimensions) in Backend Octobercms
我正在创建一个插件,我在后端使用文件上传字段类型。我有一个关系 $attachOne,我需要验证图像尺寸(高度和宽度),有办法吗?
使用它会给出图像的宽度和高度。
list($width, $height) = getimagesize($filename);
您需要向模型添加验证逻辑。在关系称为 somerelation
的地方,在模型 class:
中定义这样的方法
public function beforeValidate()
{
$file = $this->somerelation()->withDeferred($this->sessionKey)->first();
$filename = $file->getLocalPath();
list($width, $height) = getimagesize($filename);
if ($width < 800) {
throw new ValidationException(['somerelation' => 'Width must be greater than 800']);
}
}
要使此方法重写起作用,请确保模型已经使用了 October\Rain\Database\Traits\Validation
特征。对于它只发生在后端,快速检查 App::runningInBackend()
应该可以解决问题。
我正在创建一个插件,我在后端使用文件上传字段类型。我有一个关系 $attachOne,我需要验证图像尺寸(高度和宽度),有办法吗?
使用它会给出图像的宽度和高度。
list($width, $height) = getimagesize($filename);
您需要向模型添加验证逻辑。在关系称为 somerelation
的地方,在模型 class:
public function beforeValidate()
{
$file = $this->somerelation()->withDeferred($this->sessionKey)->first();
$filename = $file->getLocalPath();
list($width, $height) = getimagesize($filename);
if ($width < 800) {
throw new ValidationException(['somerelation' => 'Width must be greater than 800']);
}
}
要使此方法重写起作用,请确保模型已经使用了 October\Rain\Database\Traits\Validation
特征。对于它只发生在后端,快速检查 App::runningInBackend()
应该可以解决问题。