diff --git a/src/Symfony/Component/Validator/Constraints/File.php b/src/Symfony/Component/Validator/Constraints/File.php index 5221857101af2..c70db0a74c4c1 100644 --- a/src/Symfony/Component/Validator/Constraints/File.php +++ b/src/Symfony/Component/Validator/Constraints/File.php @@ -102,8 +102,10 @@ private function normalizeBinaryFormat($maxSize) $factors = [ 'k' => 1000, 'ki' => 1 << 10, - 'm' => 1000000, + 'm' => 1000 * 1000, 'mi' => 1 << 20, + 'g' => 1000 * 1000 * 1000, + 'gi' => 1 << 30, ]; if (ctype_digit((string) $maxSize)) { $this->maxSize = (int) $maxSize; diff --git a/src/Symfony/Component/Validator/Tests/Constraints/FileTest.php b/src/Symfony/Component/Validator/Tests/Constraints/FileTest.php index d3117ed44a245..e0b6ec8f41f5d 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/FileTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/FileTest.php @@ -97,6 +97,10 @@ public function provideValidSizes() ['1MI', 1048576, true], ['3m', 3000000, false], ['3M', 3000000, false], + ['1gi', 1073741824, true], + ['1GI', 1073741824, true], + ['4g', 4000000000, false], + ['4G', 4000000000, false], ]; } @@ -107,8 +111,6 @@ public function provideInvalidSizes() ['foo'], ['1Ko'], ['1kio'], - ['1G'], - ['1Gi'], ]; }