diff options
-rw-r--r-- | classes/handler/public.php | 31 | ||||
-rw-r--r-- | image.php | 52 | ||||
-rw-r--r-- | include/functions2.php | 2 | ||||
-rw-r--r-- | include/rssfuncs.php | 8 |
4 files changed, 32 insertions, 61 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."; + } + } + } + } ?> diff --git a/image.php b/image.php deleted file mode 100644 index dcc7d806d..000000000 --- a/image.php +++ /dev/null @@ -1,52 +0,0 @@ -<?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)) { - /* 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."; - } - } - -?> diff --git a/include/functions2.php b/include/functions2.php index 17d8acb3e..6d02d01e0 100644 --- a/include/functions2.php +++ b/include/functions2.php @@ -900,7 +900,7 @@ $cached_filename = CACHE_DIR . '/images/' . sha1($src) . '.png'; if (file_exists($cached_filename)) { - $src = SELF_URL_PATH . '/image.php?hash=' . sha1($src); + $src = SELF_URL_PATH . '/public.php?op=cached_image&hash=' . sha1($src); } $entry->setAttribute('src', $src); diff --git a/include/rssfuncs.php b/include/rssfuncs.php index f80bcbb2b..b285f74c0 100644 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -1155,16 +1155,8 @@ file_put_contents($local_filename, $file_content); } } - - /* if (file_exists($local_filename)) { - $entry->setAttribute('src', SELF_URL_PATH . '/image.php?url=' . - base64_encode($src)); - } */ } } - - //$node = $doc->getElementsByTagName('body')->item(0); - //return $doc->saveXML($node); } function expire_error_log($debug) { |