Skip to content

Commit e294ee6

Browse files
committed
Make MimeTypeExtensionGuesser case insensitive
1 parent 9483779 commit e294ee6

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

src/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeExtensionGuesser.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -808,6 +808,12 @@ class MimeTypeExtensionGuesser implements ExtensionGuesserInterface
808808
*/
809809
public function guess($mimeType)
810810
{
811-
return isset($this->defaultExtensions[$mimeType]) ? $this->defaultExtensions[$mimeType] : null;
811+
if (isset($this->defaultExtensions[$mimeType])) {
812+
return $this->defaultExtensions[$mimeType];
813+
}
814+
815+
$lcMimeType = strtolower($mimeType);
816+
817+
return isset($this->defaultExtensions[$lcMimeType]) ? $this->defaultExtensions[$lcMimeType] : null;
812818
}
813819
}

src/Symfony/Component/HttpFoundation/Tests/File/UploadedFileTest.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,19 @@ public function testGuessClientExtensionWithIncorrectMimeType()
9090
$this->assertEquals('jpeg', $file->guessClientExtension());
9191
}
9292

93+
public function testCaseSensitiveMimeType()
94+
{
95+
$file = new UploadedFile(
96+
__DIR__.'/Fixtures/case-sensitive-mime-type.xlsm',
97+
'test.xlsm',
98+
'application/vnd.ms-excel.sheet.macroEnabled.12',
99+
filesize(__DIR__.'/Fixtures/case-sensitive-mime-type.xlsm'),
100+
null
101+
);
102+
103+
$this->assertEquals('xlsm', $file->guessClientExtension());
104+
}
105+
93106
public function testErrorIsOkByDefault()
94107
{
95108
$file = new UploadedFile(

0 commit comments

Comments
 (0)