gpt4 book ai didi

php - 拉维尔 : Adding video dimension validation

转载 作者:行者123 更新时间:2023-12-05 05:17:25 24 4
gpt4 key购买 nike

我知道我们可以通过以下方式为 laravel 中的图像添加尺寸验证,

$validator = Validator::make($request->all(), 
[
'banner' => 'bail
|image
|mimes:jpeg,png,jpg,gif,svg
|max:7000
|dimensions:ratio=170/63
|dimensions:min_width=510,min_height=189'
]
);

我已经为视频尝试了这些尺寸规则,但它似乎不起作用。

视频是否有可能达到同样的效果?

最佳答案

如何制定自己的规则?通过 composer 存在一个库,它读取名为 getID3 的视频文件的元数据.

安装它:

composer require james-heinrich/getid3

创建自定义规则类:

php artisan make:rule VideoDimension

在 getid3 的帮助下创建规则的逻辑:

<?php

namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class VideoDimension implements Rule
{
protected $maxWidth;
protected $maxHeight;

public function __construct($maxWidth, $maxHeight)
{
$this->maxWidth = $maxWidth;
$this->maxHeight = $maxHeight;
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
$getID3 = new getID3;

// the value is an instance of UploadedFile
$file = $getID3->analyze($value->getRealPath());

$passes = true;

if ($this->maxWidth < $file['video']['resolution_x']
|| $this->maxHeight < $file['video']['resolution_y']){
$passes = false;
}

return $passes;
}

/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'The :attribute excess the dimensions.';
}
}

最后,应用规则:

$validator = Validator::make($request->all(), 
[
'video' => ['bail',
'file',
'max:7000',
new VideoDimension(400, 600)]
]
);

希望这个例子能帮助您弄清楚如何完成您的任务。

关于php - 拉维尔 : Adding video dimension validation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49259671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com