diff options
Diffstat (limited to 'app/Model')
-rw-r--r-- | app/Model/File.php | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/app/Model/File.php b/app/Model/File.php index cb1e4792..16bf079e 100644 --- a/app/Model/File.php +++ b/app/Model/File.php @@ -96,7 +96,7 @@ class File extends Base 'path' => $path, 'is_image' => $is_image ? '1' : '0', 'size' => $size, - 'user_id' => $this->userSession->getId(), + 'user_id' => $this->userSession->getId() ?: 0, 'date' => time(), )); } @@ -320,6 +320,39 @@ class File extends Base } /** + * Handle file upload (base64 encoded content) + * + * @access public + * @param integer $project_id Project id + * @param integer $task_id Task id + * @param string $filename Filename + * @param bool $is_image Is image file? + * @param string $blob Base64 encoded image + * @return bool + */ + public function uploadContent($project_id, $task_id, $filename, $is_image, &$blob) + { + $data = base64_decode($blob); + + if (empty($data)) { + return false; + } + + $destination_filename = $this->generatePath($project_id, $task_id, $filename); + + @mkdir(FILES_DIR.dirname($destination_filename), 0755, true); + @file_put_contents(FILES_DIR.$destination_filename, $data); + + return $this->create( + $task_id, + $filename, + $destination_filename, + $is_image, + strlen($data) + ); + } + + /** * Generate a jpeg thumbnail from an image (output directly the image) * * @access public |