2011-08-17 13 views
1

を使って複数のファイルをダウンロードしようとしましたが、ループはwhileですが、1つのファイルしかダウンロードされません。どうして?複数のファイルをヘッダ()でPHPでダウンロードする

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

答えて

3

あなたが一度にサーバ側から一つのファイルを転送することができますお読みください。一般的な回避策は次のとおりです。

  1. tar /サーバー側で1つのファイルに圧縮します。
  2. ダウンロードするには、javacript to window.openファイルを複数使用してください。
1

これはできません。 HTTPプロトコルは、複数のファイルのダウンロードをサポートしていません。最も一般的な回避策は、クライアントがダウンロードできるようにファイルをzipアーカイブに入れることです。

+0

実際、Chromeはこれをサポートしています。 – Dereckson

+0

@Dereckson次に、この質問への回答を追加してください!それは非常に興味深いニュースです! –

1

ヘッダーは、データを出力する前に一度しか設定できません。

ループしていくうちにいくつかのヘッダーを設定すると、何かを出力する必要があります。次のループでは、ヘッダを設定しません。

php.net

関連する問題