Как показать диалоговое окно "Сохранить как" с помощью 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 (). Убедитесь, что единственным содержимым, которое вы Эхо, является строка.