在后端 Octobercms 中验证文件上传(图像尺寸)

Posted

技术标签:

【中文标题】在后端 Octobercms 中验证文件上传(图像尺寸)【英文标题】:Validating fileupload(image Dimensions) in Backend Octobercms 【发布时间】:2016-08-28 16:12:05 【问题描述】:

我正在创建一个插件,我在后端使用文件上传字段类型。我有一个现实 $attachOne,我需要验证图像尺寸(高度和宽度),有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

您需要向模型添加验证逻辑。其中关系称为somerelation,在模型类中定义这样的方法:

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() 应该可以解决问题。

More information on October Model events

【讨论】:

【参考方案2】:

使用它会给出图像的宽度和高度。

list($width, $height) = getimagesize($filename);

【讨论】:

以上是关于在后端 Octobercms 中验证文件上传(图像尺寸)的主要内容,如果未能解决你的问题,请参考以下文章

Yii2 在后端从前端显示图像 - 设置别名

Laravel 图像验证

通过 Slack 交互按钮上传图片

上传文件前验证文件扩展名

十月 CMS - 自定义字段

如何使用 Afnetworking 在 ios 中在后台上传图像