diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php index e68120338ef..422b18e346e 100644 --- a/lib/private/Preview/Generator.php +++ b/lib/private/Preview/Generator.php @@ -543,6 +543,10 @@ class Generator { self::unguardWithSemaphore($sem); } + if (!$preview->valid() || $preview->dataMimeType() === null) { + throw new \InvalidArgumentException('Preview generation failed: invalid or null MIME type'); + } + $previewEntry = new Preview(); $previewEntry->generateId(); $previewEntry->setFileId($file->getId()); @@ -557,12 +561,13 @@ class Generator { $previewEntry->setMimeType($preview->dataMimeType()); $previewEntry->setEtag($file->getEtag()); $previewEntry->setMtime((new \DateTime())->getTimestamp()); + if ($cacheResult) { $previewEntry = $this->savePreview($previewEntry, $preview); return new PreviewFile($previewEntry, $this->storageFactory, $this->previewMapper); - } else { - return new InMemoryFile($previewEntry->getName(), $preview->data()); } + + return new InMemoryFile($previewEntry->getName(), $preview->data()); } /**