Как показать диалоговое окно "Сохранить как" с помощью PHP для текстовых файлов

Как я могу показать диалоговое окно "Сохранить как" с помощью PHP, который попросит пользователя загрузить строку в виде текстового файла? В основном я буду извлекать некоторые значения из базы данных ,а затем хочу иметь возможность загружать.txt файл, который содержит эти данные.

4 ответов


Это должно работать:

header('Content-type: text/plain');
header('Content-disposition: attachment; filename="test.txt"');

просто, чтобы расширить ответ @Emil H:

использование этих вызовов заголовков будет работать только в контексте нового запроса. Вам нужно будет реализовать что-то, что позволяет вашему скрипту знать, когда он фактически отправляет файл, а не когда он отображает форму, сообщающую пользователю загрузить файл.


<?
header ("Content-Type: application/download");
header ("Content-Disposition: attachment; filename=$yourfile");
header("Content-Length: " . filesize("$yourfile"));
$fp = fopen("$yourfile", "r");
fpassthru($fp);
?>

для уточнения использования header ():

официальное руководство по PHP:

header () используется для отправки необработанного HTTP-заголовка. См. " спецификация HTTP/1.1 для получения дополнительной информации о заголовках HTTP.

помните, что header () должен быть вызван перед отправкой любого фактического вывода, либо обычными тегами HTML, пустыми строками в файле, либо из PHP. Это очень распространенная ошибка чтения кода с include () или require (), функции или другая функция доступа к файлам и имеют пробелы или пустые строки, которые выводятся перед header () называется. Та же проблема существует при использовании одного файла PHP/HTML.

таким образом, в основном, вы меняете всю страницу при использовании header (). Убедитесь, что единственным содержимым, которое вы Эхо, является строка.