]> git.wh0rd.org - tt-rss.git/blobdiff - image.php
Merge pull request #405 from Trottel/patch-2
[tt-rss.git] / image.php
index 36da375aabbde9e4055027f2bb9ba3999b349649..dcc7d806d406ec3f3c2beb07839c65e39b88ca2c 100644 (file)
--- a/image.php
+++ b/image.php
                $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);
-                       echo file_get_contents($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.";