创建一个文本文件,以便即时下载

let*_*ngo 47 php http-headers

更新#1

下面发布的内容是让它输出文件.它正在做的是输出字符串数据,然后输出其余的表单HTML.有没有办法阻止放入文件的内容以及刚刚显示给浏览器的内容.

更新#2

刚添加exit(),一切正常.谢谢!

EOU

嗨,

我一直在环顾四周,看到一些类似的东西,但并没有完全掌握我需要做些什么才能完全完成任务.

目前我有一个用户提供一些细节的表单.在提交时,它会回发给自己并处理POST变量.我有一个预制的HTML网页模板,用于放置信息,工作正常和花花公子只是做一个str_replace.

我现在要做的是将其作为下载导出到纯文本文档中的用户.因此,最终结果是用户单击表单上的提交,然后打开下载弹出窗口,将修改后的网页作为.txt文件.

据我所知,我需要使用HTTPs头功能做一些事情.究竟要实现我想要的东西我不确定.我只希望文件可用一次,但我认为它必须存储在某个地方,供用户下载,然后需要在手动后进行清理?

任何帮助或积分都会很棒!谢谢.

Que*_*tin 70

无需将其存储在任何地方.只需输出具有适当内容类型的内容即可.

<?php
    header('Content-type: text/plain');
?>Hello, world.
Run Code Online (Sandbox Code Playgroud)

如果要触发下载提示,请添加内容处置.

header('Content-Disposition: attachment; filename="default-filename.txt"');
Run Code Online (Sandbox Code Playgroud)


Dhi*_*dya 28

使用下面的代码来生成文件..

<? //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;
 ?>
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,它总是带来网站的源代码代码而不是$ content (2认同)

sim*_*aun 20

查看此SO问题的已接受解决方案.替换您自己的文件名basename($File)并将filesize($ File)更改为strlen($your_string).(如果字符串包含多字节字符,您可能需要使用mb_strlen.)

  • +1,尽可能避免重复并参考其他SO问题. (9认同)