summaryrefslogtreecommitdiff
path: root/roundcubemail/program/include
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2012-01-13 11:21:45 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2012-01-13 11:21:45 +0000
commit98263b317367b45ae491aa1836e0b2dca49f97bb (patch)
treeb2205b1ae461042886fb4346f64c10c0dd158c18 /roundcubemail/program/include
parentc39d008ec66c5c528f63f760083f7c6d253395db (diff)
- Make mime type detection based on filename extension to be case-insensitive
git-svn-id: https://svn.roundcube.net/trunk@5769 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/include')
-rw-r--r--roundcubemail/program/include/main.inc8
-rw-r--r--roundcubemail/program/include/rcube_shared.inc10
2 files changed, 12 insertions, 6 deletions
diff --git a/roundcubemail/program/include/main.inc b/roundcubemail/program/include/main.inc
index 148c2bd5c..9f154e4b7 100644
--- a/roundcubemail/program/include/main.inc
+++ b/roundcubemail/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/roundcubemail/program/include/rcube_shared.inc b/roundcubemail/program/include/rcube_shared.inc
index aef08341d..6767c93e7 100644
--- a/roundcubemail/program/include/rcube_shared.inc
+++ b/roundcubemail/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;