diff options
author | Robin Appelman <icewind1991@gmail.com> | 2011-10-23 11:26:54 +0200 |
---|---|---|
committer | Robin Appelman <icewind1991@gmail.com> | 2011-10-23 11:35:29 +0200 |
commit | 122fa190c684d953c1f11930109ca6644fde485c (patch) | |
tree | 92ba46614a5db1a15053b24b33ce9deb062fd005 /lib/filestorage | |
parent | 38bb503ff6fd07fe5c65e5f06add98663d9cdf3e (diff) | |
download | nextcloud-server-122fa190c684d953c1f11930109ca6644fde485c.tar.gz nextcloud-server-122fa190c684d953c1f11930109ca6644fde485c.zip |
improve mimetype detection
Diffstat (limited to 'lib/filestorage')
-rw-r--r-- | lib/filestorage/local.php | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/lib/filestorage/local.php b/lib/filestorage/local.php index 58c34e972de..01523b6b0b3 100644 --- a/lib/filestorage/local.php +++ b/lib/filestorage/local.php @@ -126,18 +126,21 @@ class OC_Filestorage_Local extends OC_Filestorage{ public function getMimeType($fspath){ if($this->is_readable($fspath)){ + $mimeType='application/octet-stream'; if (@is_dir($this->datadir.$fspath)) { // directories are easy return "httpd/unix-directory"; - }elseif (function_exists('finfo_open') and function_exists('finfo_file') and $finfo=finfo_open(FILEINFO_MIME)){ + } + if($mimeType=='application/octet-stream' and function_exists('finfo_open') and function_exists('finfo_file') and $finfo=finfo_open(FILEINFO_MIME)){ $mimeType =strtolower(finfo_file($finfo,$this->datadir.$fspath)); $mimeType=substr($mimeType,0,strpos($mimeType,';')); finfo_close($finfo); - return $mimeType; - } else if (function_exists("mime_content_type")) { + } + if ($mimeType=='application/octet-stream' && function_exists("mime_content_type")) { // use mime magic extension if available - $mime_type = mime_content_type($this->datadir.$fspath); - } else if (OC_Helper::canExecute("file")) { + $mimeType = mime_content_type($this->datadir.$fspath); + } + if ($mimeType=='application/octet-stream' && OC_Helper::canExecute("file")) { // it looks like we have a 'file' command, // lets see it it does have mime support $fspath=str_replace("'","\'",$fspath); @@ -146,18 +149,18 @@ class OC_Filestorage_Local extends OC_Filestorage{ pclose($fp); //trim the character set from the end of the response - $mime_type=substr($reply,0,strrpos($reply,' ')); + $mimeType=substr($reply,0,strrpos($reply,' ')); } - if (empty($mime_type)) { + if ($mimeType=='application/octet-stream') { // Fallback solution: (try to guess the type by the file extension if(!self::$mimetypes){ self::$mimetypes=include('mimetypes.list.php'); } $extention=strtolower(strrchr(basename($fspath), ".")); $extention=substr($extention,1);//remove leading . - $mime_type=(isset(self::$mimetypes[$extention]))?self::$mimetypes[$extention]:'application/octet-stream'; + $mimeType=(isset(self::$mimetypes[$extention]))?self::$mimetypes[$extention]:'application/octet-stream'; } - return $mime_type; + return $mimeType; } } |