From 28d793fd97b514d108db9db208780f4981e26faf Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Fri, 8 Aug 2025 17:23:17 +0530 Subject: [PATCH] file upload issue handled : GWM --- .gitignore | 3 ++ app/Controllers/MasterController.php | 46 +++++++++++++++--- .../1754653298_cd3ff596de561b50a8d4.jpg | Bin 0 -> 9663 bytes .../1754653531_c21e7c3dd83dd366060c.jpg | Bin 0 -> 9663 bytes 4 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 public/assets/images/signature/1754653298_cd3ff596de561b50a8d4.jpg create mode 100644 public/assets/images/signature/1754653531_c21e7c3dd83dd366060c.jpg diff --git a/.gitignore b/.gitignore index b64bef1..53db28a 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,6 @@ /writable/uploads/passport/* /writable/uploads/signature/* /writable/uploads/template/* + + + /public/assets/images/signature/* diff --git a/app/Controllers/MasterController.php b/app/Controllers/MasterController.php index aad5394..fe453e7 100644 --- a/app/Controllers/MasterController.php +++ b/app/Controllers/MasterController.php @@ -636,7 +636,8 @@ class MasterController extends ResourceController $file = $this->request->getFile('signature'); if ($file && $file->isValid() && !$file->hasMoved()) { $newName = $file->getRandomName(); // Generate a unique name - $uploadPath = WRITEPATH.'uploads/signature'; + // $uploadPath = WRITEPATH.'uploads/signature'; + $uploadPath = FCPATH.'public/assets/images/signature'; // print_r( $uploadPath); die; @@ -651,7 +652,7 @@ class MasterController extends ResourceController try { - $this->mailTemplateModel->set(['image_location' => $path])->where('template_name','forex')->update(); + $this->mailTemplateModel->set(['image_location' => $newName])->where('template_name','forex')->update(); return $this->respondCreated([ @@ -664,19 +665,50 @@ class MasterController extends ResourceController } } + // public function getForexSignaturePath() + // { + + // $data = $this->mailTemplateModel->where('template_name','forex')->first(); + + // return $this->respond([ + // 'status' => 200, + // 'message' => 'success', + // 'data' => $data + + // ]); + + // } + public function getForexSignaturePath() { - - $data = $this->mailTemplateModel->where('template_name','forex')->first(); + $data = $this->mailTemplateModel->where('template_name', 'forex')->first(); + + if (!$data || empty($data['image_location'])) { + return $this->respond([ + 'status' => 404, + 'message' => 'Image not found', + 'url' => null + ]); + } + + // If the DB stores only the filename, adjust accordingly + $fileName = basename($data['image_location']); + + + $imageUrl = base_url('public/assets/images/signature/' . $fileName); + + // Add both the URL and ready-made HTML tag + $data['image_url'] = $imageUrl; + $data['image_tag'] = 'Signature'; return $this->respond([ 'status' => 200, 'message' => 'success', - 'data' => $data - + 'url' => $$imageUrl ]); - } + + diff --git a/public/assets/images/signature/1754653298_cd3ff596de561b50a8d4.jpg b/public/assets/images/signature/1754653298_cd3ff596de561b50a8d4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a09617b5a5e193e4cfb28157f6279fa26d878ad5 GIT binary patch literal 9663 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