Fix Chrome PDF display issue by adding Content-Length, proper filename encoding, Cache-Control, and Accept-Ranges headers

This commit is contained in:
DevSoftTech Server 2026-06-08 23:20:06 +05:30
parent 52f5041c5c
commit 46315ac5ed

View File

@ -6170,7 +6170,10 @@ class Ipd_discharge extends BaseController
});
return $this->response
->setHeader('Content-Type', 'application/pdf')
->setHeader('Content-Disposition', 'inline; filename="' . $fileName . '"')
->setHeader('Content-Length', (string) strlen($pdfBinary))
->setHeader('Content-Disposition', 'inline; filename="' . rawurlencode($fileName) . '"; filename*=UTF-8\'\''. rawurlencode($fileName))
->setHeader('Cache-Control', 'private, max-age=0, must-revalidate')
->setHeader('Accept-Ranges', 'bytes')
->setBody($pdfBinary);
} catch (\Throwable $e) {
log_message('error', 'PDF generation failed for IPD {ipd}: {msg}', [
@ -6213,7 +6216,10 @@ class Ipd_discharge extends BaseController
return $this->response
->setHeader('Content-Type', 'application/pdf')
->setHeader('Content-Disposition', 'inline; filename="' . $fileName . '"')
->setHeader('Content-Length', (string) strlen($pdfBinary))
->setHeader('Content-Disposition', 'inline; filename="' . rawurlencode($fileName) . '"; filename*=UTF-8\'\''. rawurlencode($fileName))
->setHeader('Cache-Control', 'private, max-age=0, must-revalidate')
->setHeader('Accept-Ranges', 'bytes')
->setBody($pdfBinary);
} catch (\Throwable $fallbackError) {
log_message('error', 'Discharge PDF fallback failed for IPD {ipd}: {msg}', [
@ -6262,7 +6268,10 @@ class Ipd_discharge extends BaseController
return $this->response
->setHeader('Content-Type', 'application/pdf')
->setHeader('Content-Disposition', 'inline; filename="' . $fileName . '"')
->setHeader('Content-Length', (string) strlen($pdfBinary))
->setHeader('Content-Disposition', 'inline; filename="' . rawurlencode($fileName) . '"; filename*=UTF-8\'\''. rawurlencode($fileName))
->setHeader('Cache-Control', 'private, max-age=0, must-revalidate')
->setHeader('Accept-Ranges', 'bytes')
->setBody($pdfBinary);
} catch (\Throwable $ultimateError) {
log_message('error', 'Discharge PDF ultimate fallback failed for IPD {ipd}: {msg}', [