| | |
| | | */ |
| | | public static function file_content_type($path, $name, $failover = 'application/octet-stream', $is_stream = false, $skip_suffix = false) |
| | | { |
| | | static $mime_ext = array(); |
| | | |
| | | $mime_type = null; |
| | | $mime_magic = rcube::get_instance()->config->get('mime_magic'); |
| | | $mime_ext = $skip_suffix ? null : @include(RCUBE_CONFIG_DIR . '/mimetypes.php'); |
| | | $config = rcube::get_instance()->config; |
| | | $mime_magic = $config->get('mime_magic'); |
| | | |
| | | if (!$skip_suffix && empty($mime_ext)) { |
| | | foreach ($config->resolve_paths('mimetypes.php') as $fpath) { |
| | | $mime_ext = array_merge($mime_ext, (array) @include($fpath)); |
| | | } |
| | | } |
| | | |
| | | // use file name suffix with hard-coded mime-type map |
| | | if (is_array($mime_ext) && $name) { |
| | | if (!$skip_suffix && is_array($mime_ext) && $name) { |
| | | if ($suffix = substr($name, strrpos($name, '.')+1)) { |
| | | $mime_type = $mime_ext[strtolower($suffix)]; |
| | | } |
| | |
| | | |
| | | // fallback to some well-known types most important for daily emails |
| | | if (empty($mime_types)) { |
| | | $mime_extensions = (array) @include(RCUBE_CONFIG_DIR . '/mimetypes.php'); |
| | | foreach (rcube::get_instance()->config->resolve_paths('mimetypes.php') as $fpath) { |
| | | $mime_extensions = array_merge($mime_extensions, (array) @include($fpath)); |
| | | } |
| | | |
| | | foreach ($mime_extensions as $ext => $mime) { |
| | | $mime_types[$mime][] = $ext; |