下载PHP创建的文件而不更改窗口

时间:2011-06-28 20:15:29

标签: php

每当运行php脚本时我都会生成一个文件,该脚本由用户同时下载(没有副本保存到服务器中)。

目前,我正在将用户从文件创建php脚本重定向回原始页面。

我不想将用户重定向回原始页面,但让它们保留在原始页面上,并且PHP脚本仍然运行并提示他们保存自定义创建的文件。

我不完全确定,但是会在我当前的PHP脚本末尾添加/更改某些内容,或者只是以某种方式更改我的HTML链接?我

我的HTML

<a href="fileCreator.php">Download File</a>

我的PHP

header("Content-type: text/txt");
header("Content-Disposition: attachment; filename=file.txt");
header("Pragma: no-cache");
header("Expires: 0");
header("Location: [ORIGINAL PAGE]");
echo $txtFile; 

3 个答案:

答案 0 :(得分:3)

如果您在指向iframe(可以设置为隐藏)的链接上设置目标,则可以启用下载提示,您的用户将永远不必离开他们点击下载链接的页面。

<a href="fileCreator.php" target="download_frame">Download File</a>
<iframe id="download_frame" style="display:none;"></iframe>

答案 1 :(得分:1)

header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$fileName");
header("Content-Type: $fileType");
header("Content-Length: $fileSize");
header("Content-Transfer-Encoding: binary");
echo $fileContent;

然后只是链接到这个PHP文件,它不应该让用户离开页面。

答案 2 :(得分:0)

尝试添加

header('Content-Transfer-Encoding: binary');
header("Content-type: application/force-download"); 
header('Content-Type: application/octet-stream');