Создание текстового файла для загрузки на лету
Обновление # 1
То, что было опубликовано ниже, предназначено для вывода файла. То, что он делает, это вывод строковых данных, за которыми следуют остальные формы HTML. Есть ли способ остановить то, что помещено в файл, и то, что просто отображается в браузере.
Обновление # 2
Просто добавлено exit()
, и все работает нормально. Спасибо!
EOU
Привет,
Я оглядывался и видел несколько похожих вещей, но не совсем понял, что мне нужно сделать, чтобы полностью выполнить задачу.
В настоящий момент у меня есть форма, которую пользователь предоставляет некоторые детали. On submit отправляется обратно к себе и обрабатываются переменные POST. У меня есть готовый HTML-шаблон HTML для размещения информации, в которой отлично работает и dandy, просто делая str_replace.
То, что я пытаюсь сделать сейчас, - это экспорт, который загружается пользователю в текстовом документе. Таким образом, конечный результат заключается в том, что пользователь нажимает кнопку "Отправить" в форме, а затем открывается всплывающее окно загрузки с измененной веб-страницей в виде файла .txt.
Насколько я понимаю, мне нужно что-то сделать, используя функции заголовков HTTP. Что именно, для достижения того, чего я хочу, я не уверен. Я хочу, чтобы файл был доступен один раз, но я предполагаю, что он должен быть сохранен где-то вначале для загрузки пользователем, который затем потребуется очистить после вручную?
Любая помощь или очки будут замечательными! Спасибо.
Ответы
Ответ 1
Откажитесь от этого одобренного решения SO. Подставьте свое собственное имя файла для basename($File)
и измените размер файла ($ File) на strlen($your_string)
. (Вы можете использовать mb_strlen только в том случае, если строка содержит многобайтовые символы.)
Ответ 2
Нет необходимости хранить его в любом месте. Просто выведите содержимое с соответствующим типом содержимого.
<?php
header('Content-type: text/plain');
?>Hello, world.
Добавить размещение контента, если вы хотите вызвать приглашение для загрузки.
header('Content-Disposition: attachment; filename="default-filename.txt"');
Ответ 3
Используйте код ниже для генерации файлов на лету.
<? //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;
?>
Ответ 4
<?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;
?>