summaryrefslogtreecommitdiffstats
path: root/core/ajax/preview2.php
blob: 7ac50282190613b6cb9261b92b0d2feea8e75aef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php

\OC_Util::checkLoggedIn();
\OC::$server->getSession()->close();

$file = array_key_exists('file', $_GET) ? (string)$_GET['file'] : '';
$maxX = array_key_exists('x', $_GET) ? (int)$_GET['x'] : '32';
$maxY = array_key_exists('y', $_GET) ? (int)$_GET['y'] : '32';
$keepAspect = array_key_exists('a', $_GET) ? true : false;
$always = array_key_exists('forceIcon', $_GET) ? (bool)$_GET['forceIcon'] : true;
$mode = array_key_exists('mode', $_GET) ? $_GET['mode'] : 'fill';

if ($file === '') {
	//400 Bad Request
	\OC_Response::setStatus(400);
	\OCP\Util::writeLog('core-preview', 'No file parameter was passed', \OCP\Util::DEBUG);
	exit;
}

if ($maxX === 0 || $maxY === 0) {
	//400 Bad Request
	\OC_Response::setStatus(400);
	\OCP\Util::writeLog('core-preview', 'x and/or y set to 0', \OCP\Util::DEBUG);
	exit;
}

$userFolder = \OC::$server->getUserFolder();
$file = $userFolder->get($file);

$p = new \OC\Preview2(\OC::$server->getRootFolder(),
	\OC::$server->getConfig(),
	\OC::$server->getPreviewManager(),
	$file,
	\OC::$server->getAppDataDir('preview'));

$image = $p->getPreview($maxX, $maxY, !$keepAspect, $mode);

header('Content-Type: ' . $image->getMimeType());
echo $image->getContent();