FileSizeValidator.php 1.20 KiB
<?php declare(strict_types=1);
/*
 * Copyright (C) 2015-2017 IRSTEA
 * All rights reserved.
 */
namespace Irstea\FileUploadBundle\Validation;
use Irstea\FileUploadBundle\Model\UploadedFileInterface;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
/**
 * Vérifie que la taille du fichier.
class FileSizeValidator extends ConstraintValidator
    /**
     * {@inheritdoc}
    public function validate($value, Constraint $constraint)
        if (!$value instanceof UploadedFileInterface) {
            return;
        if ($constraint->min && $value->getSize() < $constraint->min) {
            $this->context->buildViolation($constraint->minMessage)
                ->setParameter('%displayName%', $value->getDisplayName())
                ->setParameter('%min%', $constraint->min)
                ->addViolation();
        if ($constraint->max && $value->getSize() > $constraint->max) {
            $this->context->buildViolation($constraint->maxMessage)
                ->setParameter('%displayName%', $value->getDisplayName())
                ->setParameter('%max%', $constraint->max)
                ->addViolation();