2011-08-17 34 views
1

我试图使用header()while循环中下载多个文件,但只有一个文件被下载。为什么?强制使用头文件()中的多个文件下载php

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

回答

3

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

  1. 将它们压缩成服务器端的一个文件。
  2. 使用javascript来window.open下载多个文件。
1

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

+0

实际上,Chrome支持此功能。 – Dereckson

+0

@Dereckson然后请为这个问题添加一个答案!这是非常有趣的消息! –

1

在输出任何数据之前,标头只能设置一次。

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

请仔细阅读php.net