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.
This commit is contained in:
Lukas Reschke 2015-10-31 00:55:37 +01:00
parent 6911d8f0a4
commit 40ae54d60a
1 changed files with 9 additions and 9 deletions

View File

@ -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);
}
}