MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //home/cafsindia/login_cafsindia_com/application/controllers/Doc_download.php
<?php if( ! defined('BASEPATH')) exit('No direct script is allowed');
require_once("Action_controller.php");
class Doc_download  extends Action_controller{	
	public function __construct(){
		parent::__construct('doc_download');
	}
	// LOAD PAGE QUICK LINK,FILTERS AND TABLE HEADERS
	public function index(){
		$this->load->view("doc_download/manage");
	}
	// GET THE DOCUMENTS THEN STORED RETURN ZIP PATH
	public function get_documents(){
		$policy_number_data  = $this->input->post('policy_number');
		$policy_number       = $this->db->escape($policy_number_data); // safely for SQL

		$policy_qry    = "SELECT COUNT(*) as count FROM `cw_health` WHERE policy_number = $policy_number";
		$policy_data   = $this->db->query("CALL sp_a_run('SELECT', " . $this->db->escape($policy_qry) . ")");
		$policy_result = $policy_data->result(); 
		$policy_data->next_result();
		
		if($policy_result[0]->count == 0){
			echo json_encode(['success' => false, 'message' => 'Incorrect Policy number ,please try again']);
			return;
		}
		// Query documents
		$doc_qry    = "SELECT address_proof, id_proof, bank_proof, photo_copy FROM `cw_health` WHERE policy_number = $policy_number";
		$doc_data   = $this->db->query("CALL sp_a_run('SELECT', " . $this->db->escape($doc_qry) . ")");
		$doc_result = $doc_data->result();
		$doc_data->next_result();

		if(empty($doc_result)){
			echo json_encode(['success' => false, 'message' => 'No documents found for this policy number.']);
			return;
		}
		$doc         = $doc_result[0];
		$base_path   = 'doc_folder/';
		$base_folder = 'doc_folder/' . $policy_number_data . '/';
		// Remove old folder if it exists
		if(file_exists($base_path)){
			$this->delete_dir($base_path);
		}
		mkdir($base_folder, 0777, true);
		$files = [$doc->address_proof,$doc->id_proof,$doc->bank_proof,$doc->photo_copy];
		// Copy each file into the folder
		$at_least_one_exists = false;
		foreach($files as $file){
			if(file_exists($file)){
				$at_least_one_exists = true;
				$dest_path           = $base_folder . basename($file);
				copy($file, $dest_path);
			}
		}
		if(!$at_least_one_exists){
			echo json_encode(['success' => false, 'message' => 'No documents available for this policy number']);
			return;
		}
		// Create ZIP
		$zip_filename = $policy_number_data. '.zip';
		$zip_path     = 'doc_folder/' . $zip_filename;
		$this->load->library('zip');
		$this->zip->read_dir($base_folder, false); 
		$this->zip->archive($zip_path);

		// Remove the folder after zipping
		$this->delete_dir($base_folder);
		if(file_exists($zip_path)){
			$zip_url = base_url('doc_folder/' . $zip_filename);
			echo json_encode(['success' => true, 'path' => $zip_url]);
		}else{
			echo json_encode(['success' => false, 'message' => 'Failed to create zip file.']);
		}
	}

	// Helper to delete directory recursively
	public function delete_dir($dir_path){
		if(!is_dir($dir_path)) return;
		$items = array_diff(scandir($dir_path), ['.', '..']);
		foreach($items as $item){
			$path = $dir_path . DIRECTORY_SEPARATOR . $item;
			is_dir($path) ? $this->delete_dir($path) : unlink($path);
		}
		rmdir($dir_path);
	}
}
?>