diff options
author | Lukas Reschke <lukas@owncloud.com> | 2015-10-31 00:55:37 +0100 |
---|---|---|
committer | Lukas Reschke <lukas@owncloud.com> | 2015-11-04 17:58:25 +0100 |
commit | 5814e636fb4d2e1b8fccbe31f48c9ee1bf51f446 (patch) | |
tree | 3d98a2737af701287b95fcfe1b638360cfe6a333 /lib/private/archive.php | |
parent | ffb73fa012fa05bc78b6b38ce0ff63f0b2e6da69 (diff) | |
download | nextcloud-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.php | 18 |
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); } } |