ホームページ >バックエンド開発 >PHPチュートリアル >PHP で複数ファイルの ZIP アーカイブを作成してダウンロードするにはどうすればよいですか?

PHP で複数ファイルの ZIP アーカイブを作成してダウンロードするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-23 19:42:15598ブラウズ

How to Create and Download a Multi-File ZIP Archive in PHP?

PHP で複数のファイルを含む ZIP アーカイブを作成する

PHP を使用して複数のファイルを単一の ZIP アーカイブとしてダウンロードするには、ZipArchive クラスを利用できます。 .

ZIP の作成アーカイブ:

$files = array('readme.txt', 'test.html', 'image.gif');
$zipname = 'file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
  $zip->addFile($file);
}
$zip->close();

このコードは、'file.zip' という名前の ZIP アーカイブを作成し、指定されたファイルをそれに追加します。

ダウンロード用に ZIP アーカイブをストリーミング:

header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);

これらのヘッダーは、ブラウザーがダウンロード プロンプトを表示し、適切なファイル名とサイズを設定できるように準備します。 ZIP アーカイブ ファイルを読み取ってそのコンテンツをストリーミングすることにより、ブラウザはそれをダウンロードできます。

追加メモ:

  • 「Content-disposition」ヘッダーにより、ブラウザでユーザーにダウンロード ボックスを表示します。
  • 「Content-Length」ヘッダーはオプションですが、古いバージョンとの互換性が確保されています。
  • このアプローチにより、複数のファイルを含む ZIP アーカイブの動的な作成とそのダウンロードが可能になります。

以上がPHP で複数ファイルの ZIP アーカイブを作成してダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。