diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-03-26 17:42:07 -0400 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-03-26 17:42:07 -0400 |
commit | 43893c326ced400110e3a1f6f430a984e9eefb0f (patch) | |
tree | 1f105afaac49fd597a20fcea26003bb4ad3a5e95 /app/Controller | |
parent | 4ca716ec47863f3eef6c851de7a4f37650f8ea6e (diff) |
Added caching HTTP headers for image previews
Diffstat (limited to 'app/Controller')
-rw-r--r-- | app/Controller/FileViewer.php | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/app/Controller/FileViewer.php b/app/Controller/FileViewer.php index bc91c3d8..3be4ea14 100644 --- a/app/Controller/FileViewer.php +++ b/app/Controller/FileViewer.php @@ -66,9 +66,16 @@ class FileViewer extends Base */ public function image() { + $file = $this->getFile(); + $etag = md5($file['path']); + $this->response->contentType($this->helper->file->getImageMimeType($file['name'])); + $this->response->cache(5 * 86400, $etag); + + if ($this->request->getHeader('If-None-Match') === '"'.$etag.'"') { + return $this->response->status(304); + } + try { - $file = $this->getFile(); - $this->response->contentType($this->helper->file->getImageMimeType($file['name'])); $this->objectStorage->output($file['path']); } catch (ObjectStorageException $e) { $this->logger->error($e->getMessage()); @@ -82,12 +89,21 @@ class FileViewer extends Base */ public function thumbnail() { + $file = $this->getFile(); + $model = $file['model']; + $filename = $this->$model->getThumbnailPath($file['path']); + $etag = md5($filename); + + $this->response->cache(5 * 86400, $etag); $this->response->contentType('image/jpeg'); + if ($this->request->getHeader('If-None-Match') === '"'.$etag.'"') { + return $this->response->status(304); + } + try { - $file = $this->getFile(); - $model = $file['model']; - $this->objectStorage->output($this->$model->getThumbnailPath($file['path'])); + + $this->objectStorage->output($filename); } catch (ObjectStorageException $e) { $this->logger->error($e->getMessage()); |