diff --git a/config/mimetypemapping.json b/config/mimetypemapping.dist.json similarity index 97% rename from config/mimetypemapping.json rename to config/mimetypemapping.dist.json index 49f3d8c9a1f35f0b028f3af7103a40246035a284..48ec4a56dabe061354295e31a27c23b7e58b51de 100644 --- a/config/mimetypemapping.json +++ b/config/mimetypemapping.dist.json @@ -3,6 +3,9 @@ "_comment2": "The first index in the mime type array is the assumed correct mimetype", "_comment3": "and the second (if present] is a secure alternative", + "_comment4": "Any changes you make here will be overwritten on an update of ownCloud", + "_comment5": "Put any custom mappings in a new file mimetypemapping.json in this directory", + "3gp": ["video/3gpp"], "7z": ["application/x-7z-compressed"], diff --git a/lib/private/helper.php b/lib/private/helper.php index abe1e42ecb0641f18529bbf40de039f36e1a90d7..09b319e90c8844f568e4ba323c180e8c507ce481 100644 --- a/lib/private/helper.php +++ b/lib/private/helper.php @@ -424,8 +424,15 @@ class OC_Helper { */ static public function getMimetypeDetector() { if (!self::$mimetypeDetector) { - $file = file_get_contents(OC::$SERVERROOT . '/config/mimetypemapping.json'); - $mimetypemapping = get_object_vars(json_decode($file)); + $dist = file_get_contents(OC::$SERVERROOT . '/config/mimetypemapping.dist.json'); + $mimetypemapping = get_object_vars(json_decode($dist)); + + //Check if need to load custom mappings + if (file_exists(OC::$SERVERROOT . '/config/mimetypemapping.json')) { + $custom = file_get_contents(OC::$SERVERROOT . '/config/mimetypemapping.json'); + $custom_mapping = get_object_vars(json_decode($custom)); + $mimetypemapping = array_merge($mimetypemapping, $custom_mapping); + } self::$mimetypeDetector = new \OC\Files\Type\Detection(); self::$mimetypeDetector->registerTypeArray($mimetypemapping);