summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2018-01-07 11:46:24 +0100
committerRoeland Jago Douma <roeland@famdouma.nl>2018-01-07 14:36:37 +0100
commitfaa68b28cb93bb7368a1817cbbe59880ce3bce5b (patch)
treea1e6a66b16159748429fb0ffdf47d83e19b227c6 /lib
parent5b216500976019734e67b3edd8b17c8e18c9c8cc (diff)
downloadnextcloud-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.php22
-rw-r--r--lib/private/legacy/image.php5
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) {