Поэтому я пытаюсь как динамически создать файл .doc, так и загрузить его, когда он нажимает кнопку.
Это заголовки, которые я нашел для загрузки файла
header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream');
И вот заголовки, которые я нашел, чтобы сделать документ с текстом
header('Content-type: application/vnd.ms-word'); header('Content-Disposition: attachment; Filename='.$myFile);
Мне просто сложно сопоставить картину, потому что у обеих задач есть заголовок Content-Type. Сначала я создаю файл, сохраняю его и загружаю? Или я могу сделать все это (создать файл doc и загрузить его пользователем) в одном php-файле?
Вам нужны только «заголовки, найденные для создания документа с текстом». Первый набор предназначен для общей потоковой загрузки.
Ваш второй набор заголовков в порядке. Нет необходимости в первом. Заголовок Content-Disposition
– это тот, который обычно принудительно загружает. (Хотя вы должны знать, что клиенты могут делать все, что захотят, с файлом, и у вас нет прямого контроля над этим.)
Вы можете создать файл и отправить его прямо клиенту, не сохраняя его на диске сервера, в зависимости от того, как вы создаете этот документ.