summaryrefslogtreecommitdiffstats
path: root/apps/theming
diff options
context:
space:
mode:
authorLukas Reschke <lukas@statuscode.ch>2016-08-27 21:38:41 +0200
committerLukas Reschke <lukas@statuscode.ch>2016-08-27 21:38:41 +0200
commit683f0e7f775d6cb0461146ed7b6327de36642e25 (patch)
tree46afd3da94abdb95ae984261da8696a416b834c1 /apps/theming
parent73bc108451169aa8ba95eba3749c6450de2ded2e (diff)
downloadnextcloud-server-683f0e7f775d6cb0461146ed7b6327de36642e25.tar.gz
nextcloud-server-683f0e7f775d6cb0461146ed7b6327de36642e25.zip
Use temporary file as cache
Diffstat (limited to 'apps/theming')
-rw-r--r--apps/theming/lib/Controller/ThemingController.php12
-rw-r--r--apps/theming/tests/Controller/ThemingControllerTest.php8
2 files changed, 16 insertions, 4 deletions
diff --git a/apps/theming/lib/Controller/ThemingController.php b/apps/theming/lib/Controller/ThemingController.php
index 67300b17c6d..fbb4c904773 100644
--- a/apps/theming/lib/Controller/ThemingController.php
+++ b/apps/theming/lib/Controller/ThemingController.php
@@ -39,6 +39,7 @@ use OCP\IConfig;
use OCP\IL10N;
use OCP\IRequest;
use OCA\Theming\Util;
+use OCP\ITempManager;
/**
* Class ThemingController
@@ -60,6 +61,8 @@ class ThemingController extends Controller {
private $config;
/** @var IRootFolder */
private $rootFolder;
+ /** @var ITempManager */
+ private $tempManager;
/**
* ThemingController constructor.
@@ -72,6 +75,7 @@ class ThemingController extends Controller {
* @param ITimeFactory $timeFactory
* @param IL10N $l
* @param IRootFolder $rootFolder
+ * @param ITempManager $tempManager
*/
public function __construct(
$appName,
@@ -81,7 +85,8 @@ class ThemingController extends Controller {
Util $util,
ITimeFactory $timeFactory,
IL10N $l,
- IRootFolder $rootFolder
+ IRootFolder $rootFolder,
+ ITempManager $tempManager
) {
parent::__construct($appName, $request);
@@ -91,6 +96,7 @@ class ThemingController extends Controller {
$this->l = $l;
$this->config = $config;
$this->rootFolder = $rootFolder;
+ $this->tempManager = $tempManager;
}
/**
@@ -199,14 +205,16 @@ class ThemingController extends Controller {
// Optimize the image since some people may upload images that will be
// either to big or are not progressive rendering.
+ $tmpFile = $this->tempManager->getTemporaryFile();
if(function_exists('imagescale')) {
// FIXME: Once PHP 5.5.0 is a requirement the above check can be removed
$image = imagescale($image, 1920);
}
imageinterlace($image, 1);
- imagejpeg($image, $target->fopen('w'), 75);
+ imagejpeg($image, $tmpFile, 75);
imagedestroy($image);
+ stream_copy_to_stream(fopen($tmpFile, 'r'), $target->fopen('w'));
$this->template->set('backgroundMime', $newBackgroundLogo['type']);
$name = $newBackgroundLogo['name'];
}
diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php
index 6171b30215e..d053d8c1a1c 100644
--- a/apps/theming/tests/Controller/ThemingControllerTest.php
+++ b/apps/theming/tests/Controller/ThemingControllerTest.php
@@ -32,6 +32,7 @@ use OCP\Files\IRootFolder;
use OCP\IConfig;
use OCP\IL10N;
use OCP\IRequest;
+use OCP\ITempManager;
use Test\TestCase;
use OCA\Theming\ThemingDefaults;
@@ -52,6 +53,8 @@ class ThemingControllerTest extends TestCase {
private $themingController;
/** @var IRootFolder|\PHPUnit_Framework_MockObject_MockObject */
private $rootFolder;
+ /** @var ITempManager */
+ private $tempManager;
public function setUp() {
$this->request = $this->getMockBuilder('OCP\IRequest')->getMock();
@@ -64,10 +67,10 @@ class ThemingControllerTest extends TestCase {
->getMock();
$this->l10n = $this->getMockBuilder('OCP\IL10N')->getMock();
$this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')->getMock();
-
$this->timeFactory->expects($this->any())
->method('getTime')
->willReturn(123);
+ $this->tempManager = \OC::$server->getTempManager();
$this->themingController = new ThemingController(
'theming',
@@ -77,7 +80,8 @@ class ThemingControllerTest extends TestCase {
$this->util,
$this->timeFactory,
$this->l10n,
- $this->rootFolder
+ $this->rootFolder,
+ $this->tempManager
);
return parent::setUp();