From 3af8bde949ee14360574ec504be80a01ccd466ea Mon Sep 17 00:00:00 2001
From: Georg Ehrke <developer@georgehrke.com>
Date: Mon, 19 Jan 2015 00:22:55 +0100
Subject: [PATCH] add config-option for an image's maximum filesize when
 generating previews

---
 config/config.sample.php      | 12 ++++++++++++
 lib/private/preview/image.php |  7 +++++++
 2 files changed, 19 insertions(+)

diff --git a/config/config.sample.php b/config/config.sample.php
index 98da8aed356..f8cf460de3f 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 986a44b48fd..e8473ebb8a4 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) {
-- 
GitLab