Correctly remove the charset from finfo mimetype

This commit is contained in:
Joas Schilling 2016-09-02 13:29:30 +02:00
parent 8c4e5a923a
commit 810f99c1c9
No known key found for this signature in database
GPG Key ID: E166FD8976B3BAC8
2 changed files with 4 additions and 3 deletions

View File

@ -200,7 +200,7 @@ class Detection implements IMimeTypeDetector {
$info = @strtolower(finfo_file($finfo, $path));
finfo_close($finfo);
if ($info) {
$mimeType = substr($info, 0, strpos($info, ';'));
$mimeType = strpos($info, ';') !== false ? substr($info, 0, strpos($info, ';')) : $info;
return empty($mimeType) ? 'application/octet-stream' : $mimeType;
}
@ -238,7 +238,8 @@ class Detection implements IMimeTypeDetector {
public function detectString($data) {
if (function_exists('finfo_open') and function_exists('finfo_file')) {
$finfo = finfo_open(FILEINFO_MIME);
return finfo_buffer($finfo, $data);
$info = finfo_buffer($finfo, $data);
return strpos($info, ';') !== false ? substr($info, 0, strpos($info, ';')) : $info;
} else {
$tmpFile = \OC::$server->getTempManager()->getTemporaryFile();
$fh = fopen($tmpFile, 'wb');

View File

@ -81,7 +81,7 @@ class DetectionTest extends \Test\TestCase {
public function testDetectString() {
$result = $this->detection->detectString("/data/data.tar.gz");
$expected = 'text/plain; charset=us-ascii';
$expected = 'text/plain';
$this->assertEquals($expected, $result);
}