Skip to content

Commit 1b99d91

Browse files
zeliard91montymxb
authored andcommitted
Fix ParseFile MimeType guessing with uppercase extensions (#399)
* Fix ParseFile MimeType guessing with uppercase extensions * Move strtolower in getMimeTypeForExtension
1 parent fea625b commit 1b99d91

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

src/Parse/ParseFile.php

100755100644
+1
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,7 @@ private function download()
269269
*/
270270
private function getMimeTypeForExtension($extension)
271271
{
272+
$extension = strtolower($extension);
272273
$knownTypes = [
273274
'ai' => 'application/postscript',
274275
'aif' => 'audio/x-aiff',

tests/Parse/ParseFileTest.php

+6
Original file line numberDiff line numberDiff line change
@@ -128,22 +128,27 @@ public function testParseFileTypes()
128128
$file = ParseFile::createFromData($contents, 'noextension');
129129
$file2 = ParseFile::createFromData($contents, 'photo.png', 'text/plain');
130130
$file3 = ParseFile::createFromData($contents, 'photo.png');
131+
$file4 = ParseFile::createFromData($contents, 'photo.PNG');
131132
$file->save();
132133
$file2->save();
133134
$file3->save();
135+
$file4->save();
134136

135137
// check initial mime types after creating from data
136138
$this->assertEquals('unknown/unknown', $file->getMimeType());
137139
$this->assertEquals('text/plain', $file2->getMimeType());
138140
$this->assertEquals('image/png', $file3->getMimeType());
141+
$this->assertEquals('image/png', $file4->getMimeType());
139142

140143
$fileAgain = ParseFile::_createFromServer($file->getName(), $file->getURL());
141144
$file2Again = ParseFile::_createFromServer($file2->getName(), $file2->getURL());
142145
$file3Again = ParseFile::_createFromServer($file3->getName(), $file3->getURL());
146+
$file4Again = ParseFile::_createFromServer($file4->getName(), $file4->getURL());
143147

144148
$this->assertEquals($contents, $fileAgain->getData());
145149
$this->assertEquals($contents, $file2Again->getData());
146150
$this->assertEquals($contents, $file3Again->getData());
151+
$this->assertEquals($contents, $file4Again->getData());
147152

148153
// check mime types after calling getData
149154
$mt = $fileAgain->getMimeType();
@@ -154,6 +159,7 @@ public function testParseFileTypes()
154159
);
155160
$this->assertEquals('image/png', $file2Again->getMimeType());
156161
$this->assertEquals('image/png', $file3Again->getMimeType());
162+
$this->assertEquals('image/png', $file4Again->getMimeType());
157163
}
158164

159165
public function testFileOnObject()

0 commit comments

Comments
 (0)