aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/controller/apicontroller.php
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2014-09-16 19:31:51 +0200
committerLukas Reschke <lukas@owncloud.com>2014-09-16 19:31:51 +0200
commit368391e40138739f6a02ad6cd44a925bdff970a8 (patch)
treee1c6f7ed88107b80b1f1ed18e01f77c6fe36dadc /apps/files/controller/apicontroller.php
parent4ebc11aa8d44a8188d43b9f884bd306b4a2fc7a3 (diff)
parente62d5b7e55ea5eab098751146f6c49641574c7c9 (diff)
downloadnextcloud-server-368391e40138739f6a02ad6cd44a925bdff970a8.tar.gz
nextcloud-server-368391e40138739f6a02ad6cd44a925bdff970a8.zip
Merge pull request #11009 from owncloud/tobiasKaminsky-route
REST API for thumbnails
Diffstat (limited to 'apps/files/controller/apicontroller.php')
-rw-r--r--apps/files/controller/apicontroller.php52
1 files changed, 52 insertions, 0 deletions
diff --git a/apps/files/controller/apicontroller.php b/apps/files/controller/apicontroller.php
new file mode 100644
index 00000000000..01f9086c27d
--- /dev/null
+++ b/apps/files/controller/apicontroller.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Copyright (c) 2014 Lukas Reschke <lukas@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCA\Files\Controller;
+
+use OCP\AppFramework\Http;
+use OCP\AppFramework\Controller;
+use OCP\IRequest;
+use OCP\AppFramework\Http\JSONResponse;
+use OCP\AppFramework\Http\DownloadResponse;
+use OC\Preview;
+
+class ApiController extends Controller {
+
+ public function __construct($appName, IRequest $request){
+ parent::__construct($appName, $request);
+ }
+
+
+ /**
+ * Gets a thumbnail of the specified file
+ *
+ * @since API version 1.0
+ *
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ *
+ * @param int $x
+ * @param int $y
+ * @param string $file
+ * @return JSONResponse|DownloadResponse
+ */
+ public function getThumbnail($x, $y, $file) {
+ if($x < 1 || $y < 1) {
+ return new JSONResponse('Requested size must be numeric and a positive value.', Http::STATUS_BAD_REQUEST);
+ }
+
+ try {
+ $preview = new Preview('', 'files', $file, $x, $y, true);
+ echo($preview->showPreview('image/png'));
+ return new DownloadResponse($file.'.png', 'image/png');
+ } catch (\Exception $e) {
+ return new JSONResponse('File not found.', Http::STATUS_NOT_FOUND);
+ }
+ }
+
+}