diff options
author | Roeland Jago Douma <rullzer@users.noreply.github.com> | 2017-12-11 15:28:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-11 15:28:05 +0100 |
commit | e47137c7d4a57b20bc2ed337aaee4cf99ee94e08 (patch) | |
tree | 5dd56274dd47d4fe35a44edfda32ae1448e8c21c /lib/private/Files/Storage | |
parent | c1fcd6fc98c43c7a0298d68e1c2533132b12176d (diff) | |
parent | b36dd8b71fb8751b07ef98443d739d0b1cda9c7d (diff) | |
download | nextcloud-server-e47137c7d4a57b20bc2ed337aaee4cf99ee94e08.tar.gz nextcloud-server-e47137c7d4a57b20bc2ed337aaee4cf99ee94e08.zip |
Merge pull request #6682 from nextcloud/dav-mimetype-fallback
Fallback to filename based detection if the remote dav server doesn't…
Diffstat (limited to 'lib/private/Files/Storage')
-rw-r--r-- | lib/private/Files/Storage/DAV.php | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php index cd42b2d7073..6585dd862e4 100644 --- a/lib/private/Files/Storage/DAV.php +++ b/lib/private/Files/Storage/DAV.php @@ -146,7 +146,7 @@ class DAV extends Common { } $proxy = \OC::$server->getConfig()->getSystemValue('proxy', ''); - if($proxy !== '') { + if ($proxy !== '') { $settings['proxy'] = $proxy; } @@ -343,11 +343,11 @@ class DAV extends Common { case 'rb': try { $response = $this->httpClientService - ->newClient() - ->get($this->createBaseUri() . $this->encodePath($path), [ - 'auth' => [$this->user, $this->password], - 'stream' => true - ]); + ->newClient() + ->get($this->createBaseUri() . $this->encodePath($path), [ + 'auth' => [$this->user, $this->password], + 'stream' => true + ]); } catch (RequestException $e) { if ($e->getResponse() instanceof ResponseInterface && $e->getResponse()->getStatusCode() === 404) { @@ -590,6 +590,15 @@ class DAV extends Common { /** {@inheritdoc} */ public function getMimeType($path) { + $remoteMimetype = $this->getMimeTypeFromRemote($path); + if ($remoteMimetype === 'application/octet-stream') { + return \OC::$server->getMimeTypeDetector()->detectPath($path); + } else { + return $remoteMimetype; + } + } + + public function getMimeTypeFromRemote($path) { try { $response = $this->propfind($path); if ($response === false) { @@ -606,12 +615,11 @@ class DAV extends Common { } elseif (isset($response['{DAV:}getcontenttype'])) { return $response['{DAV:}getcontenttype']; } else { - return false; + return 'application/octet-stream'; } } catch (\Exception $e) { - $this->convertException($e, $path); + return false; } - return false; } /** |