Валідація розмірів зображень за допомогою правила dimensions у Laravel

Перекладено ШІ 2 Laravel News 26 червня, 2026

Laravel пропонує потужні можливості валідації зображень за допомогою правила розмірів, що дозволяє контролювати розміри та пропорції медіа, завантажуваних у вашій програмі. Дізнайтеся, як реалізувати стратегічний підхід до валідації зображень і забезпечити оптимальну якість медіа в нашій статті

Laravel надає потужні можливості для валідації зображень за допомогою правила dimensions, що дозволяє детально контролювати розміри та пропорції медіафайлів під час їх завантаження у вашу програму

Простий приклад реалізації демонструє гнучкість цього правила:

use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;

// Основна валідація
$validator = Validator::make($request->all(), [
    'profile_photo' => [
        'required',
        Rule::dimensions()
            ->minWidth(400)
            ->minHeight(400)
            ->maxWidth(2000)
            ->maxHeight(2000)
    ]
]);

Ось як реалізувати комплексну стратегію валідації зображень у системі управління медіа:

class MediaController extends Controller
{
    public function upload(Request $request)
    {
        $imageType = $request->input('type', 'standard');

        $rules = [
            'image' => array_merge(
                ['required', 'image', 'max:10240'], // максимальний розмір 10 МБ
                $this->getDimensionRules($imageType)
            )
        ];

        $request->validate($rules);

        // Обробка та збереження валідаційного зображення
        $path = $request->file('image')->store('media/' . $imageType);

        return response()->json([
            'success' => true,
            'path' => $path
        ]);
    }

    protected function getDimensionRules(string $type): array
    {
        return match($type) {
            'thumbnail' => [
                Rule::dimensions()
                    ->width(300)
                    ->height(300)
            ],
            'hero' => [
                Rule::dimensions()
                    ->minWidth(1200)
                    ->minHeight(600)
                    ->maxHeight(800)
                    ->ratio(2)
            ],
            'gallery' => [
                Rule::dimensions()
                    ->minWidth(800)
                    ->minHeight(600)
                    ->maxWidth(3000)
                    ->maxHeight(2000)
            ],
            default => [
                Rule::dimensions()
                    ->minWidth(400)
                    ->minHeight(400)
            ]
        };
    }
}

Правило dimensions гарантує оптимальну якість зображень у вашій програмі, запобігаючи проблемам зі зберіганням та пропускною здатністю через неправильно підібрані uploads

Популярні

Інше, що варто прочитати

20 Оновлено 26 червня, 2026

Перетворення даних у типобезпечні DTO за допомогою пакету Data Model

Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю

10 Оновлено 26 червня, 2026

Остаточний посібник з вебхуків у Laravel

Сучасні веб-додатки вимагають миттєвого обміну інформацією, і вебхуки стають незамінними помічниками у цьому процесі. Пориньте у світ вебхуків у Laravel і дізнайтеся, як легко реалізувати цю технологію у своїх проєктах, забезпечуючи безпеку та продуктивність

41 Оновлено 26 червня, 2026

Що нового в PHP 8.5

PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення