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();
関連記事
-
-
Codeigniter4で外部ファイル(CSS / JS)の読み込みと共通パーツ化する方法
Codeigniter4.4.4でCSS及びJavaScriptファイルを設置し ...
-
-
PHPで「Call to undefined function mb_str_split()」エラーの対応方法
PHPにて「Fatal error: Uncaught Error: Call ...
-
-
PHPでエラーログ等のログファイルから指定した行数を表示させる方法
エラーログを最新分から指定行数表示させる プログラムがあって、どういった作りにな ...
-
-
PHP8系で「Uncaught TypeError: count(): Argument」エラーの対応方法
PHP8系で「PHP Fatal error: Uncaught TypeErr ...
-
-
PHP8系の環境でdBug.phpライブラリが使用できない場合の対応方法
先日メモしたdBug.phpをPHP8系の環境で試すと動作しなかった。ただエラー ...