我是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,有没有人知道如何阻止这种情况发生?
答案 0 :(得分:0)
实际上,PHP没有提供这样的功能。
要显示进度条,您可以尝试:
执行长时间运行的文件生成过程时,在当前用户会话
在显示下载表单的页面上,添加一个 iFrame ,它会调用 progress.php 脚本
progress.php脚本需要生成网页,需要自动重新加载
progress.php脚本需要从会话中读取当前进度值,并绘制进度条图形,直观地表示进度。
虽然这是一个仅限PHP的解决方案,但您可能会使用JS / AJAX准备另一个解决方案。
HTML自动重新加载应该是这样的:
<meta http-equiv="refresh" content="1; URL=http://myServer.com/progress.php">
答案 1 :(得分:0)
您可以使用http://jqueryui.com/demos/progressbar/它是基于JavaScript的,您可以通过AJAX发送您的进度,就像Stefan说的那样。