如何在PHP中实时创建文件时下载文件

时间:2014-12-12 22:45:22

标签: php codeigniter download

是否有PHP脚本,我可以在PHP中创建文件时下载文件?

问题是我在PHP中有一个巨大的脚本来创建一个文件,并且为了生成它,它持续大约5分钟。在生成它之后,它会下载它,这需要另外5分钟左右。

总共下载文件需要10分钟以上。

我需要的是创建一个类似于phpmyadmin的脚本,文件在创建时会下载。

非常感谢任何帮助

PS:我正在使用Codeigniter Framework。

提前致谢。

1 个答案:

答案 0 :(得分:1)

这取决于您如何创建该文件,完整的示例将非常有用。

但基本上你需要设置正确的标题然后你可以在逐行创建时开始输出结果。

header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: Binary'); 
header('Content-disposition: attachment; filename="file.txt"'); 

for($i=1;$i<=20;$i++)
{
    echo $i . "\r\n";
    sleep(1);
}

exit;

下载提示会立即显示,但下载文件至少需要20秒。

您应该将标头设置为正确的mime类型,具体取决于您打算做什么。

请记住,在您的情况下,下载的大小不可用,因此用户不会知道文件有多大或者还有多少要下载。这是一个缺点,如果尚未创建文件,基本上没有什么可以做的。