トップページ >  PHP >  ファイルダウンロード(一括)
初版2008/11/20: 最終更新日2008/11/20
ファイルダウンロード(一括)
目次
ファイルダウンロード(一括)
サンプルコード
サンプル
ファイルダウンロード(一括)
複数のファイルをまとめて圧縮して、ダウンロードする方法を説明します。

まず、phpMyAdmin のライブラリを使用して、複数ファイルを圧縮できるようにします。
(「zip.lib.php」を使用。ダウンロードはこちら を御覧下さい。)
その後、順番にファイルをバイナリで読んで、クラスに追加していきます。
全てのファイルの追加が終了したら、HTTPヘッダを送信して終了です。
単独でのダウンロード方法については こちら を御覧下さい。

以下が簡単なサンプルになります。

サンプルコード
(php部 :download_comp.php )
<?php
header( "Content-Type: application/octet-stream" );
header( "Content-disposition: attachment; filename=comp.zip" );

require_once('zip.lib.php');

// クラス作成
$zipfile = new zipfile();

// ダウンロード元ファイル1を設定します。
//ファイルパス(絶対パス、ファイル名まで含む)を指定します。
$filename1 = 'path/Sunset.jpg';
// 保存時のファイル1の名前を設定します。
$fName1 = 'Download_Sunset.jpg';

// ファイルをバイナリで読んで、変数にセット
$handle = fopen($filename1, "rb");
$contents = fread($handle, filesize($filename1));
fclose($handle);

// 追加
$zipfile->addFile($contents, $fName1);


// ダウンロード元ファイル2を設定します。
//ファイルパス(絶対パス、ファイル名まで含む)を指定します。
$filename2 = 'path/test.txt';
// 保存時のファイル2の名前を設定します。
$fName2 = 'Download_Test.txt';

// ファイルをバイナリで読んで、変数にセット
$handle = fopen($filename2, "rb");
$contents = fread($handle, filesize($filename2));
fclose($handle);

// 追加
$zipfile->addFile($contents, $fName2);


// zip をバイナリで変数にセット
$zip_buffer = $zipfile->file();

print $zip_buffer;
?>

(html部 : download_comp.html )
<form method="post" action="download_comp.php">
	<input type="submit" value="ダウンロード">
</form>

サンプル

「ダウンロード」ボタンを押すと、ファイルダウンロードを行います。