aboutsummaryrefslogtreecommitdiff
path: root/pages/photos/image/download.php
blob: ef47b76382c429012c026e2a7aacbe1ea2c9b075 (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
41
<?php
/**
 * Download a photo
 *
 * @author Cash Costello
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
 */

$guid = (int) get_input('guid');
$image = get_entity($guid);

$disposition = get_input('disposition', 'attachment');

if ($image) {
	$filename = $image->originalfilename;
	$mime = $image->mimetype;

	header("Content-Type: $mime");
	header("Content-Disposition: $disposition; filename=\"$filename\"");

	$contents = $image->grabFile();

	if (empty($contents)) {
		echo file_get_contents(dirname(dirname(__FILE__)) . "/graphics/image_error_large.png" );
	} else {

		// expires every 60 days
		$expires = 60 * 60*60*24;

		header("Content-Length: " . strlen($contents));
		header("Cache-Control: public", true);
		header("Pragma: public", true);
		header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT', true);

		echo $contents;
	}

	exit;
} else {
	register_error(elgg_echo("image:downloadfailed"));
}