【发布时间】:2011-09-19 22:50:31
【问题描述】:
我是 php 的新手,但我设法创建了一个名为“welcome.php”的页面,该页面从表单中获取您的名字和姓氏,然后将它们放在一个简单的文本文件中并发回给您下载:
<?php
if ($_POST) {
header("Content-Type: application/txt");
header('Content-Disposition: attachment; filename="welcome.txt"');
echo "Welcome, ";
echo $_POST['firstName']. " " . $_POST['lastName'];
// exit the script to make the form not appear in the downloaded file
exit;
}
?>
<form action="" method="post">
First Name: <input type="text" name="firstName" /><br />
Last Name: <input type="text" name="lastName" /><br />
<input type="submit" name="submit" value="Submit me!" />
</form>
我要做的是在生成此文本文件时添加一个进度条,当弹出“保存文件”对话框时达到100%。我知道在这种情况下加载时间非常短,但我稍后会对其进行修改以制作更大的文本文件。我想知道您是否可以为我指出正确的方向或提供几行代码来提供帮助,记住我只学习了 2 天的 php。我相信你可以使用一种叫做flush的东西,但我不确定如何将它集成到我的页面中。谢谢!
请注意,我的页面也有一个小故障,即文本文件还输出表单的 html,有人知道如何阻止这种情况发生吗?
【问题讨论】:
-
文本文件包含表单,因为在
echo调用之后,PHP 解析器从if语句中出来,然后echos 出来了所有的HTML。您需要添加一个else来说明如果$_POST则发送文本文件,否则继续显示HTML 页面。 -
@Alex:我解决了这个小问题。
-
所以我想我已经通过像这样回显 html 来修复它? 'else { echo "
-
不,你不需要
echo整个表格,你可以像this gist那样做。
标签: php progress-bar text-files