From 51c333e538cdea9c632558f9ab752dd4c4fa30ae Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Sat, 24 Oct 2015 17:54:56 -0400 Subject: Regenerate thumbnails if missing --- app/Controller/File.php | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'app/Controller/File.php') diff --git a/app/Controller/File.php b/app/Controller/File.php index 3aadf076..4d771e2f 100644 --- a/app/Controller/File.php +++ b/app/Controller/File.php @@ -109,7 +109,7 @@ class File extends Base } /** - * Return the file content (work only for images) + * Display image * * @access public */ @@ -119,36 +119,38 @@ class File extends Base $task = $this->getTask(); $file = $this->file->getById($this->request->getIntegerParam('file_id')); - if ($file['task_id'] != $task['id']) { - $this->response->redirect($this->helper->url->to('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))); + if ($file['task_id'] == $task['id']) { + $this->response->contentType($this->file->getImageMimeType($file['name'])); + $this->objectStorage->output($file['path']); } - - $this->response->contentType($this->file->getImageMimeType($file['name'])); - $this->objectStorage->output($file['path']); } catch (ObjectStorageException $e) { $this->logger->error($e->getMessage()); } } /** - * Return image thumbnails + * Display image thumbnails * * @access public */ public function thumbnail() { + $this->response->contentType('image/jpeg'); + try { $task = $this->getTask(); $file = $this->file->getById($this->request->getIntegerParam('file_id')); - if ($file['task_id'] != $task['id']) { - $this->response->redirect($this->helper->url->to('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))); + if ($file['task_id'] == $task['id']) { + $this->objectStorage->output($this->file->getThumbnailPath($file['path'])); } - - $this->response->contentType('image/jpeg'); - $this->objectStorage->output($this->file->getThumbnailPath($file['path'])); } catch (ObjectStorageException $e) { $this->logger->error($e->getMessage()); + + // Try to generate thumbnail on the fly for images uploaded before Kanboard < 1.0.19 + $data = $this->objectStorage->get($file['path']); + $this->file->generateThumbnailFromData($file['path'], $data); + $this->objectStorage->output($this->file->getThumbnailPath($file['path'])); } } -- cgit v1.2.3