summaryrefslogtreecommitdiffstats
path: root/lib/private/archive.php
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2015-10-31 00:55:37 +0100
committerLukas Reschke <lukas@owncloud.com>2015-11-04 17:58:25 +0100
commit5814e636fb4d2e1b8fccbe31f48c9ee1bf51f446 (patch)
tree3d98a2737af701287b95fcfe1b638360cfe6a333 /lib/private/archive.php
parentffb73fa012fa05bc78b6b38ce0ff63f0b2e6da69 (diff)
downloadnextcloud-server-5814e636fb4d2e1b8fccbe31f48c9ee1bf51f446.tar.gz
nextcloud-server-5814e636fb4d2e1b8fccbe31f48c9ee1bf51f446.zip
Use actual mimetype detection instead of extension
We cannot rely on the extension as the file may also be a valid TAR or ZIP file without such content. Especially when getting resources from the ownCloud appstore.
Diffstat (limited to 'lib/private/archive.php')
-rw-r--r--lib/private/archive.php18
1 files changed, 9 insertions, 9 deletions
diff --git a/lib/private/archive.php b/lib/private/archive.php
index 191d45296c7..54c5a71f715 100644
--- a/lib/private/archive.php
+++ b/lib/private/archive.php
@@ -31,20 +31,20 @@
abstract class OC_Archive{
/**
- * open any of the supported archive types
+ * Open any of the supported archive types
+ *
* @param string $path
* @return OC_Archive|void
*/
public static function open($path) {
- $ext=substr($path, strrpos($path, '.'));
- switch($ext) {
- case '.zip':
+ $mime = \OC::$server->getMimeTypeDetector()->detect($path);
+
+ switch($mime) {
+ case 'application/zip':
return new OC_Archive_ZIP($path);
- case '.gz':
- case '.bz':
- case '.bz2':
- case '.tgz':
- case '.tar':
+ case 'application/x-gzip':
+ return new OC_Archive_TAR($path);
+ case 'application/x-bzip2':
return new OC_Archive_TAR($path);
}
}