[php] PHP에서 파일을 ZIP으로 압축하여 다운로드하기

파일을 ZIP으로 압축하여 다운로드하는 기능은 PHP 애플리케이션에서 자주 사용됩니다. 이 기능은 여러 파일을 하나의 ZIP 파일로 묶어서 다운로드할 때 유용합니다. 이 글에서는 PHP로 파일을 ZIP으로 압축하고 다운로드하는 방법을 알아보겠습니다.

1. ZipArchive 클래스 사용

PHP에서 파일을 ZIP으로 압축하고 다운로드하기 위해서는 ZipArchive 클래스를 사용해야 합니다. 이 클래스는 ZIP 파일을 만들고 다루는 데 사용됩니다.

$zip = new ZipArchive();

if ($zip->open('compressed.zip', ZipArchive::CREATE) === TRUE) {
    $zip->addFile('file1.txt', 'file1.txt');
    $zip->addFile('file2.txt', 'file2.txt');
    $zip->close();
}

위의 코드에서는 ZipArchive 클래스를 사용하여 compressed.zip라는 ZIP 파일을 생성하고, file1.txtfile2.txt를 압축 파일에 추가합니다.

2. 압축 파일 다운로드

파일을 압축한 후에는 이를 다운로드할 수 있어야 합니다. PHP에서는 readfile 함수를 사용하여 압축 파일을 다운로드할 수 있습니다.

$file = 'compressed.zip';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/zip');
    header('Content-Disposition: attachment; filename=' . basename($file));
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}

위의 코드에서는 HTTP 헤더를 설정하여 파일 다운로드를 위한 준비를 마친 뒤, readfile 함수를 사용하여 압축 파일을 다운로드합니다.

이제 PHP에서 파일을 ZIP으로 압축하고 다운로드하는 방법에 대해 알아보았습니다. 위의 예제 코드를 사용하여 애플리케이션에 필요한 기능을 구현할 수 있을 것입니다.

참고 자료