From 38b3998bbc41b01ef5cf6de18387f96a14f32836 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 10 Feb 2017 12:37:21 +0300 Subject: [PATCH] af_zz_imgproxy: use inline disposition, misc updates --- classes/handler/public.php | 9 +++++---- plugins/af_zz_imgproxy/init.php | 16 +++++++++++++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/classes/handler/public.php b/classes/handler/public.php index 459a535a..c7c86d46 100644 --- a/classes/handler/public.php +++ b/classes/handler/public.php @@ -1054,7 +1054,8 @@ class Handler_Public extends Handler { $filename = CACHE_DIR . '/images/' . $hash; if (file_exists($filename)) { - header("Content-Disposition: attachment; filename=\"$hash\""); + header("Content-Disposition: inline; filename=\"$hash\""); + $mimetype = mime_content_type($filename); /* See if we can use X-Sendfile */ $xsendfile = false; @@ -1064,10 +1065,10 @@ class Handler_Public extends Handler { if ($xsendfile) { header("X-Sendfile: $filename"); - header("Content-type: application/octet-stream"); - header('Content-Disposition: attachment; filename="' . basename($filename) . '"'); + header("Content-type: $mimetype"); + header('Content-Disposition: inline; filename="' . basename($filename) . '"'); } else { - header("Content-type: image/png"); + header("Content-type: $mimetype"); $stamp = gmdate("D, d M Y H:i:s", filemtime($filename)). " GMT"; header("Last-Modified: $stamp", true); readfile($filename); diff --git a/plugins/af_zz_imgproxy/init.php b/plugins/af_zz_imgproxy/init.php index df8f34db..bbeb8e8d 100644 --- a/plugins/af_zz_imgproxy/init.php +++ b/plugins/af_zz_imgproxy/init.php @@ -35,16 +35,26 @@ class Af_Zz_ImgProxy extends Plugin { $extension = $kind == 1 ? '.mp4' : '.png'; $local_filename = CACHE_DIR . "/images/" . sha1($url) . $extension; - if ($_REQUEST["debug"] == "1") { print $local_filename; die; } + //if ($_REQUEST["debug"] == "1") { print $local_filename; die; } - header("Content-Disposition: attachment; filename=\"".basename($local_filename)."\""); + 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); + readfile($local_filename); } else { $data = fetch_file_contents(array("url" => $url)); if ($data) { - file_put_contents($local_filename, $data); + if (file_put_contents($local_filename, $data)) { + $mimetype = mime_content_type($local_filename); + header("Content-type: $mimetype"); + } + print $data; } } -- 2.39.2