diff options
Diffstat (limited to 'app/Controller/File.php')
-rw-r--r-- | app/Controller/File.php | 26 |
1 files changed, 14 insertions, 12 deletions
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'])); } } |