Отдаем файл на скачивание в браузер

Пример кода на PHP, который определяет MIME-тип файла с помощью расширения Fileinfo и отдает файл в браузер для скачивания
// Задайте путь к файлу
$file = 'путь/к/файлу/name.txt';

// Проверка существования файла
if (file_exists($file)) {
    // Определение MIME-типа с использованием Fileinfo
    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    $mimeType = finfo_file($finfo, $file);
    finfo_close($finfo);
    
    // Если MIME-тип не определился, используем значение по умолчанию
    if (!$mimeType) {
        $mimeType = 'application/octet-stream';
    }
    
    // Установка необходимых заголовков
    header('Content-Description: File Transfer');
    header('Content-Type: ' . $mimeType);
    header('Content-Disposition: attachment; filename="' . basename($file) . '"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    
    // Очистка буфера вывода
    flush();
    
    // Передача содержимого файла
    readfile($file);
    exit;
} else {
    // Обработка ситуации, когда файл не найден
    echo "Файл не найден.";
}