1
0
mirror of https://git.tt-rss.org/git/tt-rss.git synced 2025-12-13 13:45:56 +00:00

remove apache-specific x-sendfile stuff

implement a hook (HOOK_SEND_LOCAL_FILE) which plugins may use to send files
via httpd-specific implementation to increase performance typically on larger files
This commit is contained in:
Andrew Dolgov
2017-10-08 17:10:05 +03:00
parent 852496fa15
commit 8b73bd28d8
5 changed files with 34 additions and 38 deletions

View File

@@ -55,13 +55,9 @@ class Af_Zz_ImgProxy extends Plugin {
header("Content-Disposition: inline; filename=\"".basename($local_filename)."\"");
if (file_exists($local_filename)) {
$mimetype = mime_content_type($local_filename);
header("Content-type: $mimetype");
$stamp = gmdate("D, d M Y H:i:s", filemtime($local_filename)). " GMT";
header("Last-Modified: $stamp", true);
send_local_file($local_filename);
readfile($local_filename);
} else {
$data = fetch_file_contents(array("url" => $url));

View File

@@ -66,27 +66,11 @@ class Cache_Starred_Images extends Plugin implements IHandler {
if ($hash) {
$filename = $this->cache_dir . "/" . basename($hash);
$is_video = strpos($filename, ".mp4") !== FALSE;
if (file_exists($filename)) {
header("Content-Disposition: attachment; filename=\"$hash\"");
/* 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: " . ($is_video ? "video/mp4" : "image/png"));
$stamp = gmdate("D, d M Y H:i:s", filemtime($filename)). " GMT";
header("Last-Modified: $stamp", true);
readfile($filename);
}
send_local_file($filename);
} else {
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
echo "File not found.";