diff options
author | Max Kostikov <max@kostikov.co> | 2018-11-07 18:22:55 +0100 |
---|---|---|
committer | M. Dent <dentm42@gmail.com> | 2018-11-07 18:22:55 +0100 |
commit | eaf117cce19f0fd78f551fea27f382d3b8b49110 (patch) | |
tree | 28fede5ff10c994272dae79b43fea96b98199c8c /Zotlabs/Module/Photo.php | |
parent | fc1d8c0138f834ffa1c9044525c32757059c0f23 (diff) | |
download | volse-hubzilla-eaf117cce19f0fd78f551fea27f382d3b8b49110.tar.gz volse-hubzilla-eaf117cce19f0fd78f551fea27f382d3b8b49110.tar.bz2 volse-hubzilla-eaf117cce19f0fd78f551fea27f382d3b8b49110.zip |
Added `If-Modified-Since` header support for better image caching and fixed absent 404 for photos
Diffstat (limited to 'Zotlabs/Module/Photo.php')
-rw-r--r-- | Zotlabs/Module/Photo.php | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/Zotlabs/Module/Photo.php b/Zotlabs/Module/Photo.php index d76fca278..d3d82f035 100644 --- a/Zotlabs/Module/Photo.php +++ b/Zotlabs/Module/Photo.php @@ -10,7 +10,7 @@ require_once('include/photos.php'); class Photo extends \Zotlabs\Web\Controller { function init() { - + $prvcachecontrol = false; $streaming = null; $channel = null; @@ -32,6 +32,7 @@ class Photo extends \Zotlabs\Web\Controller { } $observer_xchan = get_observer_hash(); + $ismodified = $_SERVER['HTTP_IF_MODIFIED_SINCE']; if(isset($type)) { @@ -86,6 +87,7 @@ class Photo extends \Zotlabs\Web\Controller { if(intval($r[0]['os_storage'])) $data = file_get_contents($data); } + if(! $data) { $data = fetch_image_from_url($default,$mimetype); } @@ -179,8 +181,19 @@ class Photo extends \Zotlabs\Web\Controller { } } + } else { + http_status_exit(404,'not found'); } } + + header_remove('Pragma'); + + if($ismodified === gmdate("D, d M Y H:i:s", $modified) . " GMT") { + header_remove('Expires'); + header_remove('Cache-Control'); + header_remove('Set-Cookie'); + http_status_exit(304,'not modified'); + } if(! isset($data)) { if(isset($resolution)) { @@ -219,11 +232,6 @@ class Photo extends \Zotlabs\Web\Controller { } - if(function_exists('header_remove')) { - header_remove('Pragma'); - header_remove('pragma'); - } - header("Content-type: " . $mimetype); if($prvcachecontrol) { |