Создайте текстовый файл для загрузки на лету
Обновление #1
То, что было опубликовано ниже, идеально подходит для вывода файла. Что он делает, так это вывод строковых данных, за которыми следуют остальные формы HTML. Есть ли способ остановить то, что помещается в файл, и то, что просто отображается в браузере.
Обновление #2
Только что добавил exit()
, и все работает нормально. Спасибо!
ЭОУ
Привет,
Я осмотрелся и увидел несколько похожих вещей но не совсем до конца понял, что мне нужно сделать, чтобы полностью выполнить задачу.
На данный момент у меня есть форма, в которой пользователь предоставляет некоторые сведения. При отправке он отправляется обратно самому себе, и переменные ЗАПИСИ обрабатываются. У меня есть готовый веб-шаблон HTML для размещения информации, который отлично работает и отлично работает, просто выполняя str_replace.
Что я сейчас пытаюсь сделать, так это экспортировать это как загрузку пользователю в виде обычного текстового документа. Таким образом, конечным результатом является то, что пользователь нажимает отправьте форму, и затем у них откроется всплывающее окно загрузки с измененной веб-страницей в виде файла .txt.
Насколько я понимаю, мне нужно что-то сделать, используя функциональность заголовков HTTPs. Что именно, хотя для достижения того, чего я хочу, я не уверен. Я хочу, чтобы файл был доступен только один раз, но я предполагаю, что он должен быть сохранен где-то изначально для загрузки пользователем, который затем потребуется очистить вручную?
Любая помощь или очки были бы великолепны! Спасибо.
4 answers
Проверьте принятое решение этого вопроса SO. Замените свое собственное имя файла на basename($File)
и измените размер файла ($File) на strlen($your_string)
. (Вы можете использовать mb_strlen на случай, если строка содержит многобайтовые символы.)
Нет необходимости хранить его где-либо. Просто выведите содержимое с соответствующим типом контента.
<?php
header('Content-type: text/plain');
?>Hello, world.
Добавьте расположение содержимого, если вы хотите вызвать запрос на загрузку.
header('Content-Disposition: attachment; filename="default-filename.txt"');
Используйте приведенный ниже код для создания файлов на лету..
<? //Generate text file on the fly
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=savethis.txt");
// do your Db stuff here to get the content into $content
print "This is some text...\n";
print $content;
?>
<?php
header('Content-type: text/plain');
header('Content-Disposition: attachment;
filename="<name for the created file>"');
/*
assign file content to a PHP Variable $content
*/
echo $content;
?>