This commit is contained in:
VENKATESHWARAN 2026-08-06 11:50:15 +05:30
parent 3bee26e540
commit 2cc7f9fe3a

View File

@ -808,13 +808,17 @@ class EmployeeRestController extends AdminController
$policyName = preg_replace('/[^A-Za-z0-9_\- ]/', '', (string) ($empData[0]['policy_name'] ?? 'Employees')); $policyName = preg_replace('/[^A-Za-z0-9_\- ]/', '', (string) ($empData[0]['policy_name'] ?? 'Employees'));
$filename = trim($policyName) !== '' ? $policyName . '-Employees.xlsx' : 'Employees.xlsx'; $filename = trim($policyName) !== '' ? $policyName . '-Employees.xlsx' : 'Employees.xlsx';
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); // Return via CI Response (no header()/exit) so global Cors after-filter can attach ACAO headers.
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
$writer = new Xlsx($spreadsheet); $writer = new Xlsx($spreadsheet);
ob_start();
$writer->save('php://output'); $writer->save('php://output');
exit; $content = ob_get_clean();
return $this->response
->setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
->setHeader('Content-Disposition', 'attachment;filename="' . $filename . '"')
->setHeader('Cache-Control', 'max-age=0')
->setBody($content);
} catch (\Exception $e) { } catch (\Exception $e) {
return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500); return $this->respond(['status' => 'failed', 'code' => 500, 'data' => $e->getMessage()], 500);
} }