PHP zipファイル作成からダウンロードまで

//■zipファイル
// 出来上がるzipのファイル名
$zip_file_name = "./test.zip";

$zip = new ZipArchive();
$zip->open($zip_file_name, ZipArchive::CREATE|ZipArchive::OVERWRITE);

// zipにしたいファイルを追加
$zip->addFile('./a.png');
$zip->addFile('./b.png');
$zip->addFile('./c.png');

// zipファイル作成
$zip->close();


//■自動ダウンロード
header('Content-Type: application/zip; name="'.$zip_file_name.'"');
header('Content-Disposition: attachment; filename="test.zip"');
header('Content-Length: '.filesize($zip_file_name));
ob_end_clean();
echo file_get_contents($zip_file_name);

別名でzip内に格納したい場合は
$zip->addFile()
の第2パラメータに指定すれば良い。

$zip->addFile(‘./a.png’, ‘aa.PNG’);  // ‘a.png’ファイルが’aa.png’というファイル名になりzipファイルに格納される。

別名でダウンロードさせたい場合は
header(‘Content-Disposition: attachment; filename=”ダウンロードさせたいファイル名”‘);
にすればよい。

※注意点

phpinfo()を表示させて
Zipの項目が’enabled’になっていないと使用出来ない

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です