Correctly remove the charset from finfo mimetype

pull/1243/head
Joas Schilling 10 years ago
parent 8b484eedf0
commit 24d90a4bb1
No known key found for this signature in database
GPG Key ID: E166FD8976B3BAC8
  1. 5
      lib/private/Files/Type/Detection.php
  2. 2
      tests/lib/Files/Type/DetectionTest.php

@ -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');

@ -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);
}

Loading…
Cancel
Save