diff options
author | Andrew Dolgov <[email protected]> | 2017-02-04 11:32:24 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2017-02-04 11:32:24 +0300 |
commit | 0442cbb6c16e22cf172ade58d675c1e2001646d1 (patch) | |
tree | f40088063e651415619a8ae1e268e4f04d27712a | |
parent | 60e97d9e63df7cdbf6fc9ece09ae4bb79e4a5272 (diff) |
image cache: send files as content-disposition: attachment; add .png suffix to image urls
-rw-r--r-- | classes/handler/public.php | 4 | ||||
-rw-r--r-- | include/functions2.php | 29 |
2 files changed, 18 insertions, 15 deletions
diff --git a/classes/handler/public.php b/classes/handler/public.php index a516b6c5c..0fc8476c7 100644 --- a/classes/handler/public.php +++ b/classes/handler/public.php @@ -1051,9 +1051,11 @@ class Handler_Public extends Handler { if ($hash) { - $filename = CACHE_DIR . '/images/' . $hash . '.png'; + $filename = CACHE_DIR . '/images/' . $hash; if (file_exists($filename)) { + header("Content-Disposition: attachment; filename=\"".basename($filename)."\""); + /* See if we can use X-Sendfile */ $xsendfile = false; if (function_exists('apache_get_modules') && diff --git a/include/functions2.php b/include/functions2.php index b8eff56d2..2b34f287c 100644 --- a/include/functions2.php +++ b/include/functions2.php @@ -903,27 +903,28 @@ $entry->setAttribute('rel', 'noopener noreferrer'); } - if ($entry->hasAttribute('src')) { - $src = rewrite_relative_url($site_url, $entry->getAttribute('src')); + if ($entry->nodeName == 'img') { + + if ($entry->hasAttribute('src')) { + $src = rewrite_relative_url($site_url, $entry->getAttribute('src')); - $cached_filename = CACHE_DIR . '/images/' . sha1($src) . '.png'; + $cached_filename = CACHE_DIR . '/images/' . sha1($src) . '.png'; - if (file_exists($cached_filename)) { - $src = SELF_URL_PATH . '/public.php?op=cached_image&hash=' . sha1($src); + if (file_exists($cached_filename)) { + $src = SELF_URL_PATH . '/public.php?op=cached_image&hash=' . sha1($src) . '.png'; - if ($entry->hasAttribute('srcset')) { - $entry->removeAttribute('srcset'); - } + if ($entry->hasAttribute('srcset')) { + $entry->removeAttribute('srcset'); + } - if ($entry->hasAttribute('sizes')) { - $entry->removeAttribute('sizes'); + if ($entry->hasAttribute('sizes')) { + $entry->removeAttribute('sizes'); + } } - } - $entry->setAttribute('src', $src); - } + $entry->setAttribute('src', $src); + } - if ($entry->nodeName == 'img') { if ($entry->hasAttribute('src')) { $is_https_url = parse_url($entry->getAttribute('src'), PHP_URL_SCHEME) === 'https'; |