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.
remotes/origin/exclude_directories_III
Lukas Reschke 10 years ago
parent 6911d8f0a4
commit 40ae54d60a
  1. 18
      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);
}
}

Loading…
Cancel
Save