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);
}
}
?>