__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <[email protected]> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Validator\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; use Symfony\Component\Validator\Exception\LogicException; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * Validates whether a value is a valid image file and is valid * against minWidth, maxWidth, minHeight and maxHeight constraints. * * @author Benjamin Dulau <[email protected]> * @author Bernhard Schussek <[email protected]> */ class ImageValidator extends FileValidator { /** * @return void */ public function validate(mixed $value, Constraint $constraint) { if (!$constraint instanceof Image) { throw new UnexpectedTypeException($constraint, Image::class); } $violations = \count($this->context->getViolations()); parent::validate($value, $constraint); $failed = \count($this->context->getViolations()) !== $violations; if ($failed || null === $value || '' === $value) { return; } if (null === $constraint->minWidth && null === $constraint->maxWidth && null === $constraint->minHeight && null === $constraint->maxHeight && null === $constraint->minPixels && null === $constraint->maxPixels && null === $constraint->minRatio && null === $constraint->maxRatio && $constraint->allowSquare && $constraint->allowLandscape && $constraint->allowPortrait && !$constraint->detectCorrupted) { return; } $size = @getimagesize($value); if (empty($size) || (0 === $size[0]) || (0 === $size[1])) { $this->context->buildViolation($constraint->sizeNotDetectedMessage) ->setCode(Image::SIZE_NOT_DETECTED_ERROR) ->addViolation(); return; } $width = $size[0]; $height = $size[1]; if ($constraint->minWidth) { if (!ctype_digit((string) $constraint->minWidth)) { throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid minimum width.', $constraint->minWidth)); } if ($width < $constraint->minWidth) { $this->context->buildViolation($constraint->minWidthMessage) ->setParameter('{{ width }}', $width) ->setParameter('{{ min_width }}', $constraint->minWidth) ->setCode(Image::TOO_NARROW_ERROR) ->addViolation(); return; } } if ($constraint->maxWidth) { if (!ctype_digit((string) $constraint->maxWidth)) { throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid maximum width.', $constraint->maxWidth)); } if ($width > $constraint->maxWidth) { $this->context->buildViolation($constraint->maxWidthMessage) ->setParameter('{{ width }}', $width) ->setParameter('{{ max_width }}', $constraint->maxWidth) ->setCode(Image::TOO_WIDE_ERROR) ->addViolation(); return; } } if ($constraint->minHeight) { if (!ctype_digit((string) $constraint->minHeight)) { throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid minimum height.', $constraint->minHeight)); } if ($height < $constraint->minHeight) { $this->context->buildViolation($constraint->minHeightMessage) ->setParameter('{{ height }}', $height) ->setParameter('{{ min_height }}', $constraint->minHeight) ->setCode(Image::TOO_LOW_ERROR) ->addViolation(); return; } } if ($constraint->maxHeight) { if (!ctype_digit((string) $constraint->maxHeight)) { throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid maximum height.', $constraint->maxHeight)); } if ($height > $constraint->maxHeight) { $this->context->buildViolation($constraint->maxHeightMessage) ->setParameter('{{ height }}', $height) ->setParameter('{{ max_height }}', $constraint->maxHeight) ->setCode(Image::TOO_HIGH_ERROR) ->addViolation(); } } $pixels = $width * $height; if (null !== $constraint->minPixels) { if (!ctype_digit((string) $constraint->minPixels)) { throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid minimum amount of pixels.', $constraint->minPixels)); } if ($pixels < $constraint->minPixels) { $this->context->buildViolation($constraint->minPixelsMessage) ->setParameter('{{ pixels }}', $pixels) ->setParameter('{{ min_pixels }}', $constraint->minPixels) ->setParameter('{{ height }}', $height) ->setParameter('{{ width }}', $width) ->setCode(Image::TOO_FEW_PIXEL_ERROR) ->addViolation(); } } if (null !== $constraint->maxPixels) { if (!ctype_digit((string) $constraint->maxPixels)) { throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid maximum amount of pixels.', $constraint->maxPixels)); } if ($pixels > $constraint->maxPixels) { $this->context->buildViolation($constraint->maxPixelsMessage) ->setParameter('{{ pixels }}', $pixels) ->setParameter('{{ max_pixels }}', $constraint->maxPixels) ->setParameter('{{ height }}', $height) ->setParameter('{{ width }}', $width) ->setCode(Image::TOO_MANY_PIXEL_ERROR) ->addViolation(); } } $ratio = round($width / $height, 2); if (null !== $constraint->minRatio) { if (!is_numeric((string) $constraint->minRatio)) { throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid minimum ratio.', $constraint->minRatio)); } if ($ratio < round($constraint->minRatio, 2)) { $this->context->buildViolation($constraint->minRatioMessage) ->setParameter('{{ ratio }}', $ratio) ->setParameter('{{ min_ratio }}', round($constraint->minRatio, 2)) ->setCode(Image::RATIO_TOO_SMALL_ERROR) ->addViolation(); } } if (null !== $constraint->maxRatio) { if (!is_numeric((string) $constraint->maxRatio)) { throw new ConstraintDefinitionException(\sprintf('"%s" is not a valid maximum ratio.', $constraint->maxRatio)); } if ($ratio > round($constraint->maxRatio, 2)) { $this->context->buildViolation($constraint->maxRatioMessage) ->setParameter('{{ ratio }}', $ratio) ->setParameter('{{ max_ratio }}', round($constraint->maxRatio, 2)) ->setCode(Image::RATIO_TOO_BIG_ERROR) ->addViolation(); } } if (!$constraint->allowSquare && $width == $height) { $this->context->buildViolation($constraint->allowSquareMessage) ->setParameter('{{ width }}', $width) ->setParameter('{{ height }}', $height) ->setCode(Image::SQUARE_NOT_ALLOWED_ERROR) ->addViolation(); } if (!$constraint->allowLandscape && $width > $height) { $this->context->buildViolation($constraint->allowLandscapeMessage) ->setParameter('{{ width }}', $width) ->setParameter('{{ height }}', $height) ->setCode(Image::LANDSCAPE_NOT_ALLOWED_ERROR) ->addViolation(); } if (!$constraint->allowPortrait && $width < $height) { $this->context->buildViolation($constraint->allowPortraitMessage) ->setParameter('{{ width }}', $width) ->setParameter('{{ height }}', $height) ->setCode(Image::PORTRAIT_NOT_ALLOWED_ERROR) ->addViolation(); } if ($constraint->detectCorrupted) { if (!\function_exists('imagecreatefromstring')) { throw new LogicException('Corrupted images detection requires installed and enabled GD extension.'); } $resource = @imagecreatefromstring(file_get_contents($value)); if (false === $resource) { $this->context->buildViolation($constraint->corruptedMessage) ->setCode(Image::CORRUPTED_IMAGE_ERROR) ->addViolation(); return; } } } }
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| AbstractComparison.php | File | 2.19 KB | 0664 |
|
| AbstractComparisonValidator.php | File | 4.1 KB | 0664 |
|
| All.php | File | 1.02 KB | 0664 |
|
| AllValidator.php | File | 1.31 KB | 0664 |
|
| AtLeastOneOf.php | File | 1.93 KB | 0664 |
|
| AtLeastOneOfValidator.php | File | 2.54 KB | 0664 |
|
| Bic.php | File | 3.29 KB | 0664 |
|
| BicValidator.php | File | 6.13 KB | 0664 |
|
| Blank.php | File | 1.19 KB | 0664 |
|
| BlankValidator.php | File | 1.07 KB | 0664 |
|
| Callback.php | File | 1.58 KB | 0664 |
|
| CallbackValidator.php | File | 2.09 KB | 0664 |
|
| CardScheme.php | File | 2.3 KB | 0664 |
|
| CardSchemeValidator.php | File | 5.01 KB | 0664 |
|
| Cascade.php | File | 1.34 KB | 0664 |
|
| Choice.php | File | 3.12 KB | 0664 |
|
| ChoiceValidator.php | File | 4.37 KB | 0664 |
|
| Cidr.php | File | 2.78 KB | 0664 |
|
| CidrValidator.php | File | 2.32 KB | 0664 |
|
| Collection.php | File | 3.7 KB | 0664 |
|
| CollectionValidator.php | File | 3.37 KB | 0664 |
|
| Composite.php | File | 5.45 KB | 0664 |
|
| Compound.php | File | 1.39 KB | 0664 |
|
| CompoundValidator.php | File | 1002 B | 0664 |
|
| Count.php | File | 3.5 KB | 0664 |
|
| CountValidator.php | File | 2.8 KB | 0664 |
|
| Country.php | File | 1.64 KB | 0664 |
|
| CountryValidator.php | File | 1.55 KB | 0664 |
|
| CssColor.php | File | 3.7 KB | 0664 |
|
| CssColorValidator.php | File | 5.36 KB | 0664 |
|
| Currency.php | File | 1.56 KB | 0664 |
|
| CurrencyValidator.php | File | 1.54 KB | 0664 |
|
| Date.php | File | 1.33 KB | 0664 |
|
| DateTime.php | File | 1.8 KB | 0664 |
|
| DateTimeValidator.php | File | 2.71 KB | 0664 |
|
| DateValidator.php | File | 2.12 KB | 0664 |
|
| DisableAutoMapping.php | File | 1.27 KB | 0664 |
|
| DivisibleBy.php | File | 956 B | 0664 |
|
| DivisibleByValidator.php | File | 1.52 KB | 0664 |
|
| Email.php | File | 3.45 KB | 0664 |
|
| EmailValidator.php | File | 4.8 KB | 0664 |
|
| EnableAutoMapping.php | File | 1.27 KB | 0664 |
|
| EqualTo.php | File | 999 B | 0664 |
|
| EqualToValidator.php | File | 723 B | 0664 |
|
| Existence.php | File | 612 B | 0664 |
|
| Expression.php | File | 2.65 KB | 0664 |
|
| ExpressionLanguageProvider.php | File | 1.09 KB | 0664 |
|
| ExpressionLanguageSyntax.php | File | 1.84 KB | 0664 |
|
| ExpressionLanguageSyntaxValidator.php | File | 2.37 KB | 0664 |
|
| ExpressionSyntax.php | File | 1.44 KB | 0664 |
|
| ExpressionSyntaxValidator.php | File | 1.92 KB | 0664 |
|
| ExpressionValidator.php | File | 2.05 KB | 0664 |
|
| File.php | File | 7.84 KB | 0664 |
|
| FileValidator.php | File | 11.92 KB | 0664 |
|
| GreaterThan.php | File | 1001 B | 0664 |
|
| GreaterThanOrEqual.php | File | 1020 B | 0664 |
|
| GreaterThanOrEqualValidator.php | File | 795 B | 0664 |
|
| GreaterThanValidator.php | File | 767 B | 0664 |
|
| GroupSequence.php | File | 2.62 KB | 0664 |
|
| GroupSequenceProvider.php | File | 790 B | 0664 |
|
| Hostname.php | File | 1.37 KB | 0664 |
|
| HostnameValidator.php | File | 2.03 KB | 0664 |
|
| Iban.php | File | 1.92 KB | 0664 |
|
| IbanValidator.php | File | 12.93 KB | 0664 |
|
| IdenticalTo.php | File | 1.02 KB | 0664 |
|
| IdenticalToValidator.php | File | 741 B | 0664 |
|
| Image.php | File | 9.88 KB | 0664 |
|
| ImageValidator.php | File | 9.18 KB | 0664 |
|
| Ip.php | File | 3.32 KB | 0664 |
|
| IpValidator.php | File | 2.48 KB | 0664 |
|
| IsFalse.php | File | 1.19 KB | 0664 |
|
| IsFalseValidator.php | File | 1.12 KB | 0664 |
|
| IsNull.php | File | 1.19 KB | 0664 |
|
| IsNullValidator.php | File | 1.05 KB | 0664 |
|
| IsTrue.php | File | 1.19 KB | 0664 |
|
| IsTrueValidator.php | File | 1.11 KB | 0664 |
|
| Isbn.php | File | 2.78 KB | 0664 |
|
| IsbnValidator.php | File | 5.55 KB | 0664 |
|
| Isin.php | File | 1.65 KB | 0664 |
|
| IsinValidator.php | File | 2.46 KB | 0664 |
|
| Issn.php | File | 2.24 KB | 0664 |
|
| IssnValidator.php | File | 4.07 KB | 0664 |
|
| Json.php | File | 1.19 KB | 0664 |
|
| JsonValidator.php | File | 1.37 KB | 0664 |
|
| Language.php | File | 1.65 KB | 0664 |
|
| LanguageValidator.php | File | 1.55 KB | 0664 |
|
| Length.php | File | 4.65 KB | 0664 |
|
| LengthValidator.php | File | 3.73 KB | 0664 |
|
| LessThan.php | File | 998 B | 0664 |
|
| LessThanOrEqual.php | File | 1017 B | 0664 |
|
| LessThanOrEqualValidator.php | File | 787 B | 0664 |
|
| LessThanValidator.php | File | 759 B | 0664 |
|
| Locale.php | File | 1.66 KB | 0664 |
|
| LocaleValidator.php | File | 1.64 KB | 0664 |
|
| Luhn.php | File | 1.55 KB | 0664 |
|
| LuhnValidator.php | File | 3.15 KB | 0664 |
|
| Negative.php | File | 653 B | 0664 |
|
| NegativeOrZero.php | File | 681 B | 0664 |
|
| NoSuspiciousCharacters.php | File | 4.61 KB | 0664 |
|
| NoSuspiciousCharactersValidator.php | File | 4.17 KB | 0664 |
|
| NotBlank.php | File | 1.8 KB | 0664 |
|
| NotBlankValidator.php | File | 1.36 KB | 0664 |
|
| NotCompromisedPassword.php | File | 1.63 KB | 0664 |
|
| NotCompromisedPasswordValidator.php | File | 3.58 KB | 0664 |
|
| NotEqualTo.php | File | 1003 B | 0664 |
|
| NotEqualToValidator.php | File | 734 B | 0664 |
|
| NotIdenticalTo.php | File | 1.02 KB | 0664 |
|
| NotIdenticalToValidator.php | File | 749 B | 0664 |
|
| NotNull.php | File | 1.19 KB | 0664 |
|
| NotNullValidator.php | File | 1.06 KB | 0664 |
|
| Optional.php | File | 431 B | 0664 |
|
| PasswordStrength.php | File | 1.79 KB | 0664 |
|
| PasswordStrengthValidator.php | File | 3.06 KB | 0664 |
|
| Positive.php | File | 656 B | 0664 |
|
| PositiveOrZero.php | File | 684 B | 0664 |
|
| Range.php | File | 4.74 KB | 0664 |
|
| RangeValidator.php | File | 7.22 KB | 0664 |
|
| Regex.php | File | 3.92 KB | 0664 |
|
| RegexValidator.php | File | 1.71 KB | 0664 |
|
| Required.php | File | 431 B | 0664 |
|
| Sequentially.php | File | 1.35 KB | 0664 |
|
| SequentiallyValidator.php | File | 1.18 KB | 0664 |
|
| Time.php | File | 1.5 KB | 0664 |
|
| TimeValidator.php | File | 2.21 KB | 0664 |
|
| Timezone.php | File | 3.24 KB | 0664 |
|
| TimezoneValidator.php | File | 3.76 KB | 0664 |
|
| Traverse.php | File | 1.1 KB | 0664 |
|
| Type.php | File | 1.6 KB | 0664 |
|
| TypeValidator.php | File | 2.92 KB | 0664 |
|
| Ulid.php | File | 1.56 KB | 0664 |
|
| UlidValidator.php | File | 2.37 KB | 0664 |
|
| Unique.php | File | 1.96 KB | 0664 |
|
| UniqueValidator.php | File | 2.46 KB | 0664 |
|
| Url.php | File | 1.97 KB | 0664 |
|
| UrlValidator.php | File | 5.02 KB | 0664 |
|
| Uuid.php | File | 3.93 KB | 0664 |
|
| UuidValidator.php | File | 8.51 KB | 0664 |
|
| Valid.php | File | 1.29 KB | 0664 |
|
| ValidValidator.php | File | 1.02 KB | 0664 |
|
| When.php | File | 2.29 KB | 0664 |
|
| WhenValidator.php | File | 1.72 KB | 0664 |
|
| ZeroComparisonConstraintTrait.php | File | 1.23 KB | 0664 |
|