summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2017-10-08 17:10:05 +0300
committerAndrew Dolgov <[email protected]>2017-10-08 17:14:56 +0300
commit8b73bd28d81b4fd08a44ed6cc46ebedcab65f0b2 (patch)
tree17367aaf5179aef32aaddb53cf0202584a5a8e26 /plugins
parent852496fa15fd2e749bb867301e155fb46fb6fc76 (diff)
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
Diffstat (limited to 'plugins')
-rw-r--r--plugins/af_zz_imgproxy/init.php6
-rw-r--r--plugins/cache_starred_images/init.php18
2 files changed, 2 insertions, 22 deletions
diff --git a/plugins/af_zz_imgproxy/init.php b/plugins/af_zz_imgproxy/init.php
index 41fec4ac5..4cfca4180 100644
--- a/plugins/af_zz_imgproxy/init.php
+++ b/plugins/af_zz_imgproxy/init.php
@@ -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));
diff --git a/plugins/cache_starred_images/init.php b/plugins/cache_starred_images/init.php
index 527e088d5..82e7d1fbd 100644
--- a/plugins/cache_starred_images/init.php
+++ b/plugins/cache_starred_images/init.php
@@ -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.";