diff --git a/config/config.sample.php b/config/config.sample.php index ae22f3b13550c05d8c0d69fbe605a7eaceeef597..2513a2658ad41a2455a5ff68a46cd92ce8752a12 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -621,6 +621,18 @@ $CONFIG = array( * original size. A value of ``1`` or ``null`` disables scaling. */ 'preview_max_scale_factor' => 10, + +/** + * max file size for generating image previews with imagegd (default behaviour) + * If the image is bigger, it'll try other preview generators, + * but will most likely show the default mimetype icon + * + * Value represents the maximum filesize in megabytes + * Default is 50 + * Set to -1 for no limit + */ +'preview_max_filesize_image' => 50, + /** * custom path for LibreOffice/OpenOffice binary */ diff --git a/lib/private/preview/image.php b/lib/private/preview/image.php index 986a44b48fd11c7b3cba5588a4dd0bee77aa5374..e8473ebb8a4121d8582e69429e8b44423068f2a0 100644 --- a/lib/private/preview/image.php +++ b/lib/private/preview/image.php @@ -26,6 +26,13 @@ class Image extends Provider { return false; } + $maxSizeForImages = \OC::$server->getConfig()->getSystemValue('preview_max_filesize_image', 50); + $size = $fileInfo->getSize(); + + if ($maxSizeForImages !== -1 && $size > ($maxSizeForImages * 1024 * 1024)) { + return false; + } + $image = new \OC_Image(); if($fileInfo['encrypted'] === true) {