PHPで複数の画像やテキストファイルをzipファイルとしてダウンロードさせる方法
2024/04/16
PHPで画像ファイルやテキストファイルをzip圧縮して、ダウンロードさせたかった。ZipArchiveというクラスで簡単に出来るみたい。以下に対応方法をメモ。
リファレンス
http://php.net/manual/ja/book.zip.php
ソースコード
<?php
set_time_limit(0);
$zip = new ZipArchive();
$zipFileName = 'test.zip';
$zipTmpDir = '/test/zip';
$result = $zip->open($zipTmpDir.$zipFileName, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE);
if( $result !== true ){ //エラー処理
    echo 'error!';
    exit();
}
//zipフォルダにファイルを追加
$zip->addFile('001.jpg');
$zip->addFile('002.jpg');
$zip->addFile('001.txt');
$zip->close();
//出力
header('Content-Type: application/zip; name="' . $zipFileName . '"');
header('Content-Disposition: attachment; filename="' . $zipFileName . '"');
header('Content-Length: '.filesize($zipTmpDir.$zipFileName));
echo file_get_contents($zipTmpDir.$zipFileName);
//zipファイル削除
unlink($zipTmpDir.$zipFileName);
exit();
					関連記事
- 
					
													  
- 
					PHPで配列のキーの最大値を取得する方法配列のキーに整数値が入っていて、その中から最大値を取得したいケースがあった。調べ ... 
- 
					
													  
- 
					Google Maps APIとPHPを組み合わせて複数マーカーとウィンドウを連携させる方法やりたかった事は以下の通り。 mysqlから経度緯度、マーカー名、マーカーIDを ... 
- 
					
													  
- 
					PHPからRedisを利用する際のよく使う構文についてPHPからRedisを利用する際のよく使う構文について以下にメモ。 ... 
- 
					
													  
- 
					PHPMailerを使ってメールをSMTP送信する方法(Composer無し)PHPでメールをSMTP送信したかった。また、レンタルサーバだったのでCompo ... 
- 
					
													  
- 
					PHPで「Unable to allocate~」とエラーPHPで「Unable to allocate memory for pool」 ...