diff options
author | Vincent Petry <pvince81@owncloud.com> | 2013-11-20 08:11:41 -0800 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2013-11-20 08:11:41 -0800 |
commit | a88aec8a5c199a6a0304abe2d196a0f2f93d0a66 (patch) | |
tree | 445a708b733e8d4640c5c8304414c6a077fcb91e /lib | |
parent | 8f33286b1933cf3532a8cf15d391e85deb30d429 (diff) | |
parent | a0d570b4cc22cb344921147a511b071ebce24c22 (diff) | |
download | nextcloud-server-a88aec8a5c199a6a0304abe2d196a0f2f93d0a66.tar.gz nextcloud-server-a88aec8a5c199a6a0304abe2d196a0f2f93d0a66.zip |
Merge pull request #5965 from owncloud/mimetype-only-path
Change default mimetype detection for storage backends to only use filename
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/files/storage/common.php | 26 | ||||
-rw-r--r-- | lib/private/files/storage/commontest.php | 2 | ||||
-rw-r--r-- | lib/private/files/storage/local.php | 8 | ||||
-rw-r--r-- | lib/private/files/storage/mappedlocal.php | 8 |
4 files changed, 7 insertions, 37 deletions
diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php index 3943d667c35..f99bbc9ae5e 100644 --- a/lib/private/files/storage/common.php +++ b/lib/private/files/storage/common.php @@ -142,7 +142,7 @@ abstract class Common implements \OC\Files\Storage\Storage { return false; } else { $directoryHandle = $this->opendir($directory); - if(is_resource($directoryHandle)) { + if (is_resource($directoryHandle)) { while (($contents = readdir($directoryHandle)) !== false) { if (!\OC\Files\Filesystem::isIgnoredDir($contents)) { $path = $directory . '/' . $contents; @@ -165,27 +165,13 @@ abstract class Common implements \OC\Files\Storage\Storage { } public function getMimeType($path) { - if (!$this->file_exists($path)) { - return false; - } if ($this->is_dir($path)) { return 'httpd/unix-directory'; - } - $source = $this->fopen($path, 'r'); - if (!$source) { - return false; - } - $head = fread($source, 8192); //8kb should suffice to determine a mimetype - if ($pos = strrpos($path, '.')) { - $extension = substr($path, $pos); + } elseif ($this->file_exists($path)) { + return \OC_Helper::getFileNameMimeType($path); } else { - $extension = ''; + return false; } - $tmpFile = \OC_Helper::tmpFile($extension); - file_put_contents($tmpFile, $head); - $mime = \OC_Helper::getMimeType($tmpFile); - unlink($tmpFile); - return $mime; } public function hash($type, $path, $raw = false) { @@ -227,7 +213,7 @@ abstract class Common implements \OC\Files\Storage\Storage { private function addLocalFolder($path, $target) { $dh = $this->opendir($path); - if(is_resource($dh)) { + if (is_resource($dh)) { while (($file = readdir($dh)) !== false) { if ($file !== '.' and $file !== '..') { if ($this->is_dir($path . '/' . $file)) { @@ -298,7 +284,7 @@ abstract class Common implements \OC\Files\Storage\Storage { return $this->watcher; } - public function getStorageCache(){ + public function getStorageCache() { if (!isset($this->storageCache)) { $this->storageCache = new \OC\Files\Cache\Storage($this); } diff --git a/lib/private/files/storage/commontest.php b/lib/private/files/storage/commontest.php index c3f1eb31955..2394b14a82f 100644 --- a/lib/private/files/storage/commontest.php +++ b/lib/private/files/storage/commontest.php @@ -54,7 +54,7 @@ class CommonTest extends \OC\Files\Storage\Common{ return $this->storage->stat($path); } public function filetype($path) { - return $this->storage->filetype($path); + return @$this->storage->filetype($path); } public function isReadable($path) { return $this->storage->isReadable($path); diff --git a/lib/private/files/storage/local.php b/lib/private/files/storage/local.php index 5209fabc30a..02e8df4af4e 100644 --- a/lib/private/files/storage/local.php +++ b/lib/private/files/storage/local.php @@ -203,14 +203,6 @@ if (\OC_Util::runningOnWindows()) { return $return; } - public function getMimeType($path) { - if ($this->isReadable($path)) { - return \OC_Helper::getMimeType($this->datadir . $path); - } else { - return false; - } - } - private function delTree($dir) { $dirRelative = $dir; $dir = $this->datadir . $dir; diff --git a/lib/private/files/storage/mappedlocal.php b/lib/private/files/storage/mappedlocal.php index ba5ac4191c5..6c37d445867 100644 --- a/lib/private/files/storage/mappedlocal.php +++ b/lib/private/files/storage/mappedlocal.php @@ -210,14 +210,6 @@ class MappedLocal extends \OC\Files\Storage\Common{ return $return; } - public function getMimeType($path) { - if($this->isReadable($path)) { - return \OC_Helper::getMimeType($this->buildPath($path)); - }else{ - return false; - } - } - private function delTree($dir, $isLogicPath=true) { $dirRelative=$dir; if ($isLogicPath) { |