diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2018-01-07 11:46:24 +0100 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2018-01-07 14:36:37 +0100 |
commit | faa68b28cb93bb7368a1817cbbe59880ce3bce5b (patch) | |
tree | a1e6a66b16159748429fb0ffdf47d83e19b227c6 /lib | |
parent | 5b216500976019734e67b3edd8b17c8e18c9c8cc (diff) | |
download | nextcloud-server-faa68b28cb93bb7368a1817cbbe59880ce3bce5b.tar.gz nextcloud-server-faa68b28cb93bb7368a1817cbbe59880ce3bce5b.zip |
Only return 1 type
Throw proper exception if we can't get the mimetype for a preview. Catch
it later on so we can just return a not found for the preview.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Preview/Generator.php | 22 | ||||
-rw-r--r-- | lib/private/legacy/image.php | 5 |
2 files changed, 20 insertions, 7 deletions
diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php index 91173d41afa..70a831530ed 100644 --- a/lib/private/Preview/Generator.php +++ b/lib/private/Preview/Generator.php @@ -128,9 +128,13 @@ class Generator { // Try to get a cached preview. Else generate (and store) one try { - $file = $this->getCachedPreview($previewFolder, $width, $height, $crop, $maxPreview->getMimeType()); - } catch (NotFoundException $e) { - $file = $this->generatePreview($previewFolder, $maxPreview, $width, $height, $crop, $maxWidth, $maxHeight); + try { + $file = $this->getCachedPreview($previewFolder, $width, $height, $crop, $maxPreview->getMimeType()); + } catch (NotFoundException $e) { + $file = $this->generatePreview($previewFolder, $maxPreview, $width, $height, $crop, $maxWidth, $maxHeight); + } + } catch (\InvalidArgumentException $e) { + throw new NotFoundException(); } return $file; @@ -173,7 +177,14 @@ class Generator { continue; } - $ext = $this->getExtention($preview->dataMimeType()); + // Try to get the extention. + try { + $ext = $this->getExtention($preview->dataMimeType()); + } catch (\InvalidArgumentException $e) { + // Just continue to the next iteration if this preview doesn't have a valid mimetype + continue; + } + $path = (string)$preview->width() . '-' . (string)$preview->height() . '-max.' . $ext; try { $file = $previewFolder->newFile($path); @@ -390,6 +401,7 @@ class Generator { /** * @param string $mimeType * @return null|string + * @throws \InvalidArgumentException */ private function getExtention($mimeType) { switch ($mimeType) { @@ -400,7 +412,7 @@ class Generator { case 'image/gif': return 'gif'; default: - return null; + throw new \InvalidArgumentException('Not a valid mimetype'); } } } diff --git a/lib/private/legacy/image.php b/lib/private/legacy/image.php index 925548ef26d..a0159b927f9 100644 --- a/lib/private/legacy/image.php +++ b/lib/private/legacy/image.php @@ -305,11 +305,12 @@ class OC_Image implements \OCP\IImage { } /** - * @return null|string Returns the mimetype of the data + * @return string Returns the mimetype of the data. Returns the empty string + * if the data is not valid. */ public function dataMimeType() { if (!$this->valid()) { - return null; + return ''; } switch ($this->mimeType) { |