diff options
author | alecpl <alec@alec.pl> | 2012-01-13 11:21:45 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2012-01-13 11:21:45 +0000 |
commit | 4391a7809edae1b552f0720a43924212519900a9 (patch) | |
tree | c14ef87917408c1176a202a4551b609b58b96f78 /program | |
parent | fd43a92b5d31bab019d9afec1c9846b7ab9291bb (diff) |
- Make mime type detection based on filename extension to be case-insensitive
Diffstat (limited to 'program')
-rw-r--r-- | program/include/main.inc | 8 | ||||
-rw-r--r-- | program/include/rcube_shared.inc | 10 |
2 files changed, 12 insertions, 6 deletions
diff --git a/program/include/main.inc b/program/include/main.inc index 148c2bd5c..9f154e4b7 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -1627,12 +1627,14 @@ function rcmail_filetype2classname($mimetype, $filename) list($primary, $secondary) = explode('/', $mimetype); $classes = array($primary ? $primary : 'unknown'); - if ($secondary) + if ($secondary) { $classes[] = $secondary; - if (preg_match('/\.([a-z0-9]+)$/', $filename, $m)) + } + if (preg_match('/\.([a-z0-9]+)$/i', $filename, $m)) { $classes[] = $m[1]; + } - return join(" ", $classes); + return strtolower(join(" ", $classes)); } /** diff --git a/program/include/rcube_shared.inc b/program/include/rcube_shared.inc index aef08341d..6767c93e7 100644 --- a/program/include/rcube_shared.inc +++ b/program/include/rcube_shared.inc @@ -362,12 +362,14 @@ function rc_mime_content_type($path, $name, $failover = 'application/octet-strea $mime_type = null; $mime_magic = rcmail::get_instance()->config->get('mime_magic'); $mime_ext = @include(RCMAIL_CONFIG_DIR . '/mimetypes.php'); - $suffix = $name ? substr($name, strrpos($name, '.')+1) : '*'; // use file name suffix with hard-coded mime-type map - if (is_array($mime_ext)) { - $mime_type = $mime_ext[$suffix]; + if (is_array($mime_ext) && $name) { + if ($suffix = substr($name, strrpos($name, '.')+1)) { + $mime_type = $mime_ext[strtolower($suffix)]; + } } + // try fileinfo extension if available if (!$mime_type && function_exists('finfo_open')) { if ($finfo = finfo_open(FILEINFO_MIME, $mime_magic)) { @@ -378,10 +380,12 @@ function rc_mime_content_type($path, $name, $failover = 'application/octet-strea finfo_close($finfo); } } + // try PHP's mime_content_type if (!$mime_type && !$is_stream && function_exists('mime_content_type')) { $mime_type = @mime_content_type($path); } + // fall back to user-submitted string if (!$mime_type) { $mime_type = $failover; |