2011-04-17 38 views
1

我有一个函数创建了以下这样下载文件后:PHP通话功能进行文件的下载头部被称为

header("Content-type: application/octet-stream"); 
header("Content-disposition: filename=file.csv"); 
print 'hello hello'; 
exit; 

$this->nextFuntion(); 

我需要“nextFunction”的保存对话框弹出后要叫我”我们已经看到了各种各样的方法,但它们都与头('location:')功能有关。基本上调用该函数的页面包含文件内部的数据。 “nextFunction”将删除页面中的数据并返回一条消息等。

但是我能做的最好的事情就是让下载工作,而不是功能。

+0

为什么在**之后需要调用它**? – zerkms 2011-04-17 05:48:06

+0

您正在退出,但您希望脚本继续? – 2011-04-17 05:48:55

+0

@Ignacio Vazquez-Abrams:这是薛定谔的剧本。它同时停止并运行。 – zerkms 2011-04-17 05:50:07

回答

0

将其拆分为两个脚本。第一个将调用该函数,然后重定向到第二个(通过META刷新或类似),它将负责发送要下载的文件。

+0

你可以通过“META刷新或类似”扩展吗? – Nicekiwi 2011-04-17 05:57:49

+0

是的,我知道它是什么,我的意思是我如何在PHP内部工作? – Nicekiwi 2011-04-17 06:06:42

+0

将它传递到您在第一个脚本中生成的HTML中。 – 2011-04-17 06:07:24

0

你确定你总是想在文件下载后立即清除文件吗?如果用户想再次下载并且不可用,则此功能可能会使他们烦恼。我建议设置一个cron作业来删除超过特定时间的所有文件。

+0

我是用户大声笑,它是一个很好的观点,但现在我宁愿只是保持简单 – Nicekiwi 2011-04-17 05:53:49

+0

哈哈,以及它最好不要惹恼如果你正在寻找快速和肮脏的工作来完成工作,请参阅Ignacio的文章 – 2011-04-17 05:54:34

-1

我认为你的问题与nextFunction()有关,因为PHP应该允许你在设置头文件后调用函数。

试一下测试函数,它只是记录到一个文件或我个人最喜欢的exec(“echo'HAY HAY'| wall”);

+0

尝试过。失败。 – Nicekiwi 2011-04-17 06:11:10