Added caching HTTP headers for image previews

This commit is contained in:
Frederic Guillot 2016-03-26 17:42:07 -04:00
parent 4ca716ec47
commit 43893c326c
1 changed files with 21 additions and 5 deletions

View File

@ -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());