在php中强制下载带有header()的多个文件

时间:2011-08-17 07:58:51

标签: php download

我正在尝试在header()循环中使用while下载多个文件,但只下载了一个文件。为什么呢?

while ($row = mysql_fetch_array($sql)) {
    header('Content-Type: text/x-vcard');
    header('Content-Disposition: attachment; filename=' . $row['name'] . '.vcf');
}

3 个答案:

答案 0 :(得分:3)

您一次只能从服务器端传输一个文件。典型的解决方法是:

  1. 将它们tar / zip到服务器端的一个文件中。
  2. 使用javascript to window.open多个文件进行下载。

答案 1 :(得分:1)

这是不可能的。 HTTP协议不支持下载多个文件。最常见的解决方法是将文件放在zip存档中以供客户端下载。

答案 2 :(得分:1)

在输出任何数据之前,

标题只能设置一次。

当你循环设置一些标题后,你必须输出一些东西。在下一个循环中,您不会设置任何标题。

请阅读php.net