summaryrefslogtreecommitdiff
path: root/image.php
blob: 60f2cc8397bad2f3ce47c09d2b1abc3b950a8a2e (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
42
43
44
45
46
47
48
49
<?php
	set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR .
		get_include_path());

	require_once "config.php";

	// backwards compatible wrapper for old-style image caching
	/* if (isset($_GET['url'])) {
		$url = base64_decode($_GET['url']);

		$filename = CACHE_DIR . '/images/' . sha1($url) . '.png';

		if (file_exists($filename)) {
			header("Content-type: image/png");
			echo file_get_contents($filename);
		} else {
			header("Location: $url");
		}

		return;
	} */

	@$hash = basename($_GET['hash']);

	if ($hash) {

		$filename = CACHE_DIR . '/images/' . $hash . '.png';

		if (file_exists($filename)) {
			header("Content-type: image/png");
			$stamp = gmdate("D, d M Y H:i:s", filemtime($filename)). " GMT";
			header("Last-Modified: $stamp", true);

			$fp = fopen($filename, "r");

			if ($fp) {
				while ($data = fread($fp, 32768)) {
					print $data;
				}
				fclose($fp);
			}

		} else {
			header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
			echo "File not found.";
		}
	}

?>