PHPで複数ファイルのダウンロード
はじめまして、PHPについて質問させていただきます。
PHPでファイルを複数ダウンロードできるようしたいと思っています。
色々調べ、header関数を使用し、以下のように記述すると
ファイルのダウンロードは成功しました。
/*****************************************/
// ダウンロードさせる元ファイル(絶対パス)
$filepath = 'test_01.pdf';
// 保存時のファイル名(デフォルト)
$filename = 'download001.pdf';
// HTTPヘッダ送信
header("Content-length: " . filesize($filepath));
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=\"{$filename}\"");
// ファイルを読み込んで出力
readfile($filepath);
/*****************************************/
一つのファイルのダウンロードに成功したので、
次に複数のファイルを順番にダウンロードをさせる為にループ処理をしました。
/*****************************************/
//配列 複数ファイル
$downfile = array("test_01","test_02","test_03");
//データ数
$max = count($downfile);
// ダウンロードさせるディレクトリ(絶対パス)
$filepath = "/home/sites/www.eshop-himawari.com/web/test_nihon/form_down/file/";
// 保存時のファイル名(デフォルト)
$filename = "download";
$filetype = ".pdf";
$kazu = 1;
//ループ処理
for( $i = 0; $i < count( $max ); $i++ ){
$downpath = $filepath.$downfile[$i].$filetype;
$filename = $filename.$kazu.$filetype;
$kazu = $kazu++;
// HTTPヘッダ送信
header("Content-length: " . filesize($downpath));
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=\"{$filename}\"");
// ファイルを読み込んで出力
readfile($downpath);
// $fp = fopen( "$downpath", "rb" );
// @fpassthru( $fp );
}
/*****************************************/
しかし実行すると最初のファイルはダウンロードしますが
2つ目からのファイルはダウンロードされませんでした。
きちんとループ処理をされて、2つ目以降のファイルをダウンロード
するには、どうすればいいのでしょうか?
お礼
ご回答頂き、ありがとうございました。 問題は解決致しました。本当にありがとうございました。