summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2015-02-27 14:51:26 +0300
committerAndrew Dolgov <[email protected]>2015-02-27 14:51:26 +0300
commit0c6f7b314ae663f1f9fc8ade53b9914f46e02954 (patch)
tree6df75ba10d0646590ee2ef4937a8aed91ccfcd5e /classes
parent95ebe737bd9db0f3062f15bc79e37abe3f6faae5 (diff)
remove image.php; put cached image endpoint to public.php
Diffstat (limited to 'classes')
-rw-r--r--classes/handler/public.php31
1 files changed, 31 insertions, 0 deletions
diff --git a/classes/handler/public.php b/classes/handler/public.php
index 34d577441..dafe2a8c5 100644
--- a/classes/handler/public.php
+++ b/classes/handler/public.php
@@ -1002,5 +1002,36 @@ class Handler_Public extends Handler {
<?php
}
+ function cached_image() {
+ @$hash = basename($_GET['hash']);
+
+ if ($hash) {
+
+ $filename = CACHE_DIR . '/images/' . $hash . '.png';
+
+ if (file_exists($filename)) {
+ /* See if we can use X-Sendfile */
+ $xsendfile = false;
+ if (function_exists('apache_get_modules') &&
+ array_search('mod_xsendfile', apache_get_modules()))
+ $xsendfile = true;
+
+ if ($xsendfile) {
+ header("X-Sendfile: $filename");
+ header("Content-type: application/octet-stream");
+ header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
+ } else {
+ header("Content-type: image/png");
+ $stamp = gmdate("D, d M Y H:i:s", filemtime($filename)). " GMT";
+ header("Last-Modified: $stamp", true);
+ readfile($filename);
+ }
+ } else {
+ header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
+ echo "File not found.";
+ }
+ }
+ }
+
}
?>