[php] ZIP 파일을 PHP에서 압축 풀기

ZIP 파일 업로드

우선, 웹 애플리케이션에서 사용자가 ZIP 파일을 업로드할 수 있도록 HTML 폼을 만들어야 합니다. 이 폼은 enctype="multipart/form-data" 속성을 가지고 있어야 합니다. 사용자가 업로드할 파일을 처리하기 위해 PHP를 사용할 것이므로, 폼의 action 속성은 파일을 처리할 PHP 스크립트의 경로로 설정해야 합니다.

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="압축 푸기">
</form>

ZIP 파일 압축 풀기

다음으로, upload.php 파일에 ZIP 파일을 압축 해제하는 PHP 코드를 작성해 보겠습니다. 먼저 업로드된 ZIP 파일을 저장하고 압축을 푸는 과정을 다음과 같은 순서로 만들어야 합니다.

  1. 업로드된 파일 저장
  2. ZIP 파일 압축 해제
  3. 압축 해제된 파일 처리

간단한 예제를 보여드리겠습니다. 우선, upload.php 파일에 아래와 같은 코드를 추가하세요.

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);

if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
    $zip = new ZipArchive;
    $res = $zip->open($target_file);
    if ($res === TRUE) {
        $zip->extractTo("uploads/");
        $zip->close();
        echo "ZIP 파일이 압축 해제되었습니다.";
    } else {
        echo "ZIP 파일을 열 수 없습니다.";
    }
} else {
    echo "파일 업로드 중에 오류가 발생했습니다.";
}
?>

위의 코드는 업로드된 파일을 지정된 디렉토리에 저장하고, 그 파일을 ZIP으로 압축 해제합니다. 압축을 푼 파일들은 “uploads/” 디렉토리에 저장됩니다.

이제, 당신은 업로드한 ZIP 파일을 PHP로 성공적으로 압축 해제할 수 있게 되었습니다.