Vincent Petry
10 years ago
committed by
Lukas Reschke
No known key found for this signature in database
GPG Key ID: B9F6980CF6E759B1
2 changed files with
6 additions and
2 deletions
-
lib/private/Files/Type/Detection.php
-
tests/lib/Files/Type/DetectionTest.php
|
|
|
@ -166,9 +166,11 @@ class Detection implements IMimeTypeDetector { |
|
|
|
public function detectPath($path) { |
|
|
|
$this->loadMappings(); |
|
|
|
|
|
|
|
if (strpos($path, '.')) { |
|
|
|
$fileName = basename($path); |
|
|
|
// note: leading dot doesn't qualify as extension
|
|
|
|
if (strpos($fileName, '.') > 0) { |
|
|
|
//try to guess the type by the file extension
|
|
|
|
$extension = strtolower(strrchr(basename($path), ".")); |
|
|
|
$extension = strtolower(strrchr($fileName, '.')); |
|
|
|
$extension = substr($extension, 1); //remove leading .
|
|
|
|
return (isset($this->mimetypes[$extension]) && isset($this->mimetypes[$extension][0])) |
|
|
|
? $this->mimetypes[$extension][0] |
|
|
|
|
|
|
|
@ -74,6 +74,8 @@ class DetectionTest extends \Test\TestCase { |
|
|
|
$this->assertEquals('text/plain', $this->detection->detectPath('foo.txt')); |
|
|
|
$this->assertEquals('image/png', $this->detection->detectPath('foo.png')); |
|
|
|
$this->assertEquals('image/png', $this->detection->detectPath('foo.bar.png')); |
|
|
|
$this->assertEquals('image/png', $this->detection->detectPath('.hidden/foo.png')); |
|
|
|
$this->assertEquals('image/png', $this->detection->detectPath('test.jpg/foo.png')); |
|
|
|
$this->assertEquals('application/octet-stream', $this->detection->detectPath('.png')); |
|
|
|
$this->assertEquals('application/octet-stream', $this->detection->detectPath('foo')); |
|
|
|
$this->assertEquals('application/octet-stream', $this->detection->detectPath('')); |
|
|
|
|