]> git.wh0rd.org Git - tt-rss.git/commitdiff
add optional support for the X-Sendfile header
authorMike Frysinger <vapier@gentoo.org>
Tue, 2 Apr 2013 04:56:20 +0000 (00:56 -0400)
committerMike Frysinger <vapier@gentoo.org>
Tue, 2 Apr 2013 04:56:20 +0000 (00:56 -0400)
image.php

index 94cb8e8174b262e3973651aee49e171d17400593..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);
-
-                       readfile($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.";