Linuxコマンドzipで圧縮したフォルダをダウンロードするPHPの処理メモ。
example
|
|-- target <- 圧縮対象
|
|.. ファイル
// zipファイル名
$fileName = 'myfile.zip';
/*
* zipコマンド
*
* 1. ディレクトリ移動
* 2. ファイル圧縮
*/
$dir = '/path/to/example'; // exampleへのパス
$command = 'cd ' . $dir . ';' . // exampleディレクトリへ移動
'zip -r '. $fileName . ' ./target/'; // targetディレクトリを圧縮しmyfile.zipを作成
exec($command); // コマンド実行
// zipファイルパス
$zipPath = $dir . '/' . $fileName;
// zip出力
header( "Content-Type: application/zip" );
header( "Content-Disposition: attachment; filename=" . basename( $zipPath ) );
header( "Content-Length: " . filesize( $zipPath ) );
ob_clean();
flush();
readfile( $zipPath );
// Zipファイル削除
unlink( $zipPath );
exit( 0 );
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。