From 88adf3da1b8ed0ecc3bb17d34d2322e344cb06a6 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 16 Aug 2018 12:16:51 +0300 Subject: [PATCH] send_local_file: add application/octet-stream hack cached_url: return original requested filename to save as --- classes/handler/public.php | 6 +++--- include/functions.php | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) mode change 100644 => 100755 classes/handler/public.php diff --git a/classes/handler/public.php b/classes/handler/public.php old mode 100644 new mode 100755 index 8440bc355..e892a9797 --- a/classes/handler/public.php +++ b/classes/handler/public.php @@ -934,17 +934,17 @@ class Handler_Public extends Handler { } function cached_url() { - @$hash = basename($_GET['hash']); + @$req_filename = basename($_GET['hash']); // we don't need an extension to find the file, hash is a complete URL - $hash = preg_replace("/\.[^\.]*$/", "", $hash); + $hash = preg_replace("/\.[^\.]*$/", "", $req_filename); if ($hash) { $filename = CACHE_DIR . '/images/' . $hash; if (file_exists($filename)) { - header("Content-Disposition: inline; filename=\"$hash\""); + header("Content-Disposition: inline; filename=\"$req_filename\""); send_local_file($filename); diff --git a/include/functions.php b/include/functions.php index 7ebbe38b3..b6e49716c 100755 --- a/include/functions.php +++ b/include/functions.php @@ -2574,6 +2574,13 @@ } $mimetype = mime_content_type($filename); + + // this is hardly ideal but 1) only media is cached in images/ and 2) seemingly only mp4 + // video files are detected as octet-stream by mime_content_type() + + if ($mimetype == "application/octet-stream") + $mimetype = "video/mp4"; + header("Content-type: $mimetype"); $stamp = gmdate("D, d M Y H:i:s", filemtime($filename)) . " GMT";