From df554cd79dcfd7f62951f9919fcbf59fe712eef7 Mon Sep 17 00:00:00 2001 From: Pierre du Plessis Date: Tue, 19 May 2020 10:49:18 +0200 Subject: [PATCH] Use Mime component to determine mime type for file validator --- .../Component/Validator/Constraints/FileValidator.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Validator/Constraints/FileValidator.php b/src/Symfony/Component/Validator/Constraints/FileValidator.php index 52e937944188b..b148a52b7e6ac 100644 --- a/src/Symfony/Component/Validator/Constraints/FileValidator.php +++ b/src/Symfony/Component/Validator/Constraints/FileValidator.php @@ -13,8 +13,10 @@ use Symfony\Component\HttpFoundation\File\File as FileObject; use Symfony\Component\HttpFoundation\File\UploadedFile; +use Symfony\Component\Mime\MimeTypes; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; +use Symfony\Component\Validator\Exception\LogicException; use Symfony\Component\Validator\Exception\UnexpectedTypeException; use Symfony\Component\Validator\Exception\UnexpectedValueException; @@ -170,12 +172,12 @@ public function validate($value, Constraint $constraint) } if ($constraint->mimeTypes) { - if (!$value instanceof FileObject) { - $value = new FileObject($value); + if (!class_exists(MimeTypes::class)) { + throw new LogicException('Validating mime types requires the "Mime" component. Install "symfony/mime" to use it.'); } $mimeTypes = (array) $constraint->mimeTypes; - $mime = $value->getMimeType(); + $mime = MimeTypes::getDefault()->guessMimeType($path); foreach ($mimeTypes as $mimeType) { if ($mimeType === $mime) {