myLogger = \Config\Services::mylogger(); $this->addImgModel = new AddImgModel(); $this->feContentModel = new FEContentModel(); $this->clientModel = new ClientModel(); } public function add_image_index() { $this->myLogger->logme('error','Addvertisement Image list function called'); $headerData['tab_name'] = 'Addvertisement Images'; $headerData['page_name'] = 'Addvertisement Images'; // $data['addImageList'] = $this->addImgModel->findAll(); $data['addImageList'] = $this->addImgModel->select('advertisement_images.*, clients.client_name, clients.short_name, CASE WHEN advertisement_images.is_active = 1 THEN "Active" ELSE "Inactive" END AS status', false) ->join('clients', 'advertisement_images.client_id = clients.id', 'left') ->where('advertisement_images.is_active', 1) ->findAll(); $data['client'] = $this->clientModel->where('is_active', 1)->findAll(); // dd($data); echo view('layout/header', $headerData); echo view('add_image_list', $data); echo view('layout/footer'); // $this->loadLayout('client_onboarding', $data); } // using add and edit public function add_advertise_image() { try { $file = $this->request->getFile('advertise_image'); $client_id = $this->request->getPost('client_id'); //1) original file name for vaildations $fileName = $file->getClientName(); //original file name for vaildations $existing = $this->addImgModel->where('name', $fileName)->where('client_id', $fileName)->where('is_active', 1)->first(); if($existing){ return $this->respond(['status' => false, 'message' => 'This file has already been uploaded in active state.'], 400); } //skip 1) and use this // $fileName = $file->getRandomName(); // Same Name Multiple time upload means different name if (!$file || !$file->isValid()) { return $this->respond(['status' => false, 'message' => 'No file uploaded or invalid file.'], 400); } $uploadPath = WRITEPATH . 'uploads/advertiseImage/'; if (!is_dir($uploadPath)) mkdir($uploadPath, 0755, true); $file->move($uploadPath, $fileName); $id = $this->request->getPost('add_image_id'); $data = ['name' => $fileName,'client_id'=>$client_id]; if ($id == 0) { $this->addImgModel->insert($data); } else { $this->addImgModel->update($id, $data); } return $this->respond(['status' => true, 'message' => 'Image saved successfully.']); } catch (\Exception $e) { return $this->respond(['status' => false, 'message' => $e->getMessage()], 500); } } public function remove_advertise_image() { try { $id = $this->request->getPost('add_image_id'); if (!$id) { return $this->respond(['status' => false, 'message' => 'ID missing'], 400); } $data = ['is_active' => 0]; $this->addImgModel->update($id, $data); return $this->respond(['status' => true, 'message' => 'Deleted successfully']); } catch (\Exception $e) { return $this->respond(['status' => false, 'message' => $e->getMessage()], 500); } } // public function showAdvertiseImage($fileName) // { // $filePath = WRITEPATH . 'uploads/advertiseImage/' . $fileName; // if (!file_exists($filePath)) { // return $this->response->setStatusCode(404, 'File not found'); // } // $mimeType = mime_content_type($filePath); // header('Content-Type: ' . $mimeType); // readfile($filePath); // exit; // } // In AppContentManagementController.php (This is what needs to be fixed if the direct path fails) public function showAdvertiseImage($filename) { $path = WRITEPATH . 'uploads/advertiseImage/' . $filename; if (!file_exists($path)) { throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound(); } $mime = mime_content_type($path); return $this->response->setHeader('Content-Type', $mime)->setBody(file_get_contents($path)); } public function getAdvertiseImage($image_id){ $image_data = $this->addImgModel->select('name')->where(['id' => $image_id])->first(); if($image_data){ return $image_data['name']; }else{ return ; } } // Front End Content Area public function frontend_content(){ $data['test'] = $this->feContentModel->findAll(); $headerData['tab_name'] = 'Front-End Content'; $headerData['page_name'] = 'Front-End Content'; echo view('layout/header', $headerData); echo view('frontend_content_list', $data); echo view('layout/footer'); } }