= $file_mtime) ) { http_response_code(304); exit; } // Audit log logAudit("File", "Download", "Client contact $session_contact_name viewed file $file_name_escaped via portal", $session_client_id); // Send the file header("Content-Type: $file_mime_type"); header("Content-Disposition: $disposition; filename=\"$safe_file_name\""); header("Content-Length: " . filesize($file_path)); header("X-Content-Type-Options: nosniff"); // Clear output buffers so large files stream instead of loading into memory while (ob_get_level()) { ob_end_clean(); } readfile($file_path); exit;