Метод image
Метод image класса Rule используется для проверки того,
что переданный файл является изображением в одном из поддерживаемых форматов
(jpeg, png, gif, bmp, svg, webp). Он применяется в правилах валидации
запросов и возвращает объект правила, который можно использовать
с другими методами класса Rule.
Метод image не принимает параметров, но возвращает объект,
к которому можно применять дополнительные ограничения, такие как
dimensions, max и другие.
Синтаксис
<?php
use Illuminate\Validation\Rule;
$rules = [
'photo' => Rule::image(),
];
?>
Пример
Давайте создадим правило валидации, которое проверяет, что загруженный файл является изображением:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
class UserController extends Controller
{
public function store(Request $request)
{
$request->validate([
'photo' => Rule::image(),
]);
$res = 'File is a valid image.';
echo $res;
}
}
?>
Результат выполнения кода:
"File is a valid image."
Пример
Давайте объединим image с ограничением по размеру файла.
Загружаемый файл должен быть изображением не более 2048 килобайт:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
class ProfileController extends Controller
{
public function update(Request $request)
{
$request->validate([
'avatar' => [
'required',
Rule::image(),
'max:2048',
],
]);
$res = 'Avatar uploaded successfully.';
echo $res;
}
}
?>
Результат выполнения кода:
"Avatar uploaded successfully."
Пример
Давайте используем image в сочетании с методом dimensions
для проверки пропорций изображения. Загружаемое фото
должно быть изображением с минимальной шириной 100 пикселей:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
class GalleryController extends Controller
{
public function upload(Request $request)
{
$request->validate([
'image' => [
'required',
Rule::image(),
'dimensions:min_width=100',
],
]);
$res = 'Image uploaded with correct dimensions.';
echo $res;
}
}
?>
Результат выполнения кода:
"Image uploaded with correct dimensions."