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で配列を確認する際にvar_dumpよりも見やすくなるdBug.phpの利用方法
PHPで配列を確認する際、大抵var_dumpで出力させているがこれが見づらい。 ...
-
-
PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズ
PHPで縦横どちらかが指定の長さを超えた場合、 比率を保ったままリサイズしたかっ ...
-
-
PHPのログイン認証をPEAR::Authパッケージで実装する方法
PHPのシステムである程度ちゃんとしたログインシステムが必要になった。今までログ ...
-
-
PHPで住所や名前のテキストをランダム生成するライブラリFakerPHPの使い方
PHPでランダムなデータを生成したい際に値段や点数等の数値やパスワード等のランダ ...
-
-
MySQLで重複を除く
ユニークな値を取り出したいときに使う。 DISTINCT(ディスティンクト) S ...