mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-28 02:21:29 +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:
@@ -2514,3 +2514,33 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* this is essentially a wrapper for readfile() which allows plugins to hook
|
||||
output with httpd-specific "fast" implementation i.e. X-Sendfile or whatever else
|
||||
|
||||
hook function should return true if request was handled (or at least attempted to)
|
||||
|
||||
note that this can be called without user context so the plugin to handle this
|
||||
should be loaded systemwide in config.php */
|
||||
function send_local_file($filename) {
|
||||
if (file_exists($filename)) {
|
||||
$tmppluginhost = new PluginHost();
|
||||
|
||||
$tmppluginhost->load(PLUGINS, PluginHost::KIND_SYSTEM);
|
||||
$tmppluginhost->load_data();
|
||||
|
||||
foreach ($tmppluginhost->get_hooks(PluginHost::HOOK_SEND_LOCAL_FILE) as $plugin) {
|
||||
if ($plugin->hook_send_local_file($filename)) return true;
|
||||
}
|
||||
|
||||
$mimetype = mime_content_type($filename);
|
||||
header("Content-type: $mimetype");
|
||||
|
||||
$stamp = gmdate("D, d M Y H:i:s", filemtime($filename)) . " GMT";
|
||||
header("Last-Modified: $stamp", true);
|
||||
|
||||
return readfile($filename);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user