Создание CSV-файла, а затем принудительное скачивание файла

У меня проблема, мое приложение работает следующим образом.

Первое эхо пользователя, которое начало генерации файла csv.

например. echo 'Building of csv file started';

затем я создаю файл csv.

Теперь я хочу, чтобы файл был загружен, и это работает отлично.

это мой код

  header('Content-Type: application/csv'); header('Content-Disposition:attachment;filename='.$year.'_'.$month.'_'.'export.csv'); header('Pragma: no-cache'); echo readfile($myFile); 

Нет первого эха «Создание файла csv start» входит в CSV-файл, и я не знаю, как его исключить.

Solutions Collecting From Web of "Создание CSV-файла, а затем принудительное скачивание файла"

Решение очень просто. Поскольку вам нужны два разных типа заголовков, вам нужно создать 2 разных страницы.

На первой странице отображается «Создание CSV-файла» и содержит iframe со второй страницей и вторую страницу с вашим реальным CSV-файлом и заголовком вложения.

Вы не можете заставить что-либо загружать через HTTP. Это не работает HTTP. Если вы хотите что-то загрузить, то оно должно быть активом в ответ на запрос пользователя. Это означает, что пользователь должен что-то сделать, чтобы вызвать запрос на загрузку явно или загрузка должна быть в ответ на запрос AJAX.

Все, что вы эхо собираетесь идти в CSV. Вы не можете эхо и выводить CSV в том же скрипте.

Пользователь находится на вашей странице – они нажимают ссылку «build CSV». Затем, используя некоторые очень, очень простые JS, вы можете показать сообщение / модальное / всплывающее сообщение «Создание файла csv start …» на серверной стороне PHP, вы можете удалить это эхо с страницы, которая фактически генерирует CSV и пользователю будет предложено указать файл.