diff options
Diffstat (limited to 'mod/file/thumbnail.php')
| -rw-r--r-- | mod/file/thumbnail.php | 57 | 
1 files changed, 57 insertions, 0 deletions
| diff --git a/mod/file/thumbnail.php b/mod/file/thumbnail.php new file mode 100644 index 000000000..851f13a8f --- /dev/null +++ b/mod/file/thumbnail.php @@ -0,0 +1,57 @@ +<?php +/** + * Elgg file thumbnail + * + * @package ElggFile + */ + +// Get engine +require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); + +// Get file GUID +$file_guid = (int) get_input('file_guid', 0); + +// Get file thumbnail size +$size = get_input('size', 'small'); + +$file = get_entity($file_guid); +if (!$file || $file->getSubtype() != "file") { +	exit; +} + +$simpletype = $file->simpletype; +if ($simpletype == "image") { + +	// Get file thumbnail +	switch ($size) { +		case "small": +			$thumbfile = $file->thumbnail; +			break; +		case "medium": +			$thumbfile = $file->smallthumb; +			break; +		case "large": +		default: +			$thumbfile = $file->largethumb; +			break; +	} + +	// Grab the file +	if ($thumbfile && !empty($thumbfile)) { +		$readfile = new ElggFile(); +		$readfile->owner_guid = $file->owner_guid; +		$readfile->setFilename($thumbfile); +		$mime = $file->getMimeType(); +		$contents = $readfile->grabFile(); + +		// caching images for 10 days +		header("Content-type: $mime"); +		header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', strtotime("+10 days")), true); +		header("Pragma: public", true); +		header("Cache-Control: public", true); +		header("Content-Length: " . strlen($contents)); + +		echo $contents; +		exit; +	} +} | 
