From a0ff21a2326e415bb1c0147ba2d96179d4036ca2 Mon Sep 17 00:00:00 2001
From: Georg Ehrke <dev@georgswebsite.de>
Date: Thu, 12 Jan 2012 18:26:13 +0100
Subject: [PATCH] added a file to fix wrong recognised mime-types

---
 lib/filestorage/local.php |  9 ++++++++-
 lib/mimetypes.fixlist.php | 12 ++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)
 create mode 100644 lib/mimetypes.fixlist.php

diff --git a/lib/filestorage/local.php b/lib/filestorage/local.php
index cfc2715978..1261bd3aa8 100644
--- a/lib/filestorage/local.php
+++ b/lib/filestorage/local.php
@@ -132,6 +132,13 @@ class OC_Filestorage_Local extends OC_Filestorage{
 	public function getMimeType($fspath){
 		if($this->is_readable($fspath)){
 			$mimeType='application/octet-stream';
+			if ($mimeType=='application/octet-stream') {
+				self::$mimetypes = include('mimetypes.fixlist.php');
+				$extention=strtolower(strrchr(basename($fspath), "."));
+				$extention=substr($extention,1);//remove leading .
+				$mimeType=(isset(self::$mimetypes[$extention]))?self::$mimetypes[$extention]:'application/octet-stream';
+				
+			}
 			if (@is_dir($this->datadir.$fspath)) {
 				// directories are easy
 				return "httpd/unix-directory";
@@ -158,7 +165,7 @@ class OC_Filestorage_Local extends OC_Filestorage{
 			}
 			if ($mimeType=='application/octet-stream') {
 				// Fallback solution: (try to guess the type by the file extension
-				if(!self::$mimetypes){
+				if(!self::$mimetypes || self::$mimetypes == include('mimetypes.list.php')){
 					self::$mimetypes=include('mimetypes.list.php');
 				}
 				$extention=strtolower(strrchr(basename($fspath), "."));
diff --git a/lib/mimetypes.fixlist.php b/lib/mimetypes.fixlist.php
new file mode 100644
index 0000000000..f2d86d0db1
--- /dev/null
+++ b/lib/mimetypes.fixlist.php
@@ -0,0 +1,12 @@
+<?php
+return array(
+	'ics'=>'text/calendar',
+	'ical'=>'text/calendar',
+	'js'=>'application/javascript',
+	'odt'=>'application/vnd.oasis.opendocument.text',
+	'ods'=>'application/vnd.oasis.opendocument.spreadsheet',
+	'odg'=>'application/vnd.oasis.opendocument.graphics',
+	'odp'=>'application/vnd.oasis.opendocument.presentation',
+	'pl'=>'text/x-script.perl',
+	'py'=>'text/x-script.phyton',
+);
-- 
GitLab