[php] PHP에서 ZIP 파일을 업로드하고 압축 해제하기
이번에는 PHP를 사용하여 웹 애플리케이션에 ZIP 파일을 업로드하고 이를 압축 해제하는 방법에 대해 알아보겠습니다.
1. ZIP 파일 업로드하기
먼저, HTML 폼을 생성하여 사용자가 ZIP 파일을 업로드할 수 있도록 만들겠습니다. 아래는 HTML 폼의 예시입니다.
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="zipFile">
<input type="submit" value="압축 해제">
</form>
위의 코드에서 enctype="multipart/form-data"
는 파일 업로드를 위한 설정이며, input
요소의 type
이 file
인 것에 주의하세요.
이제 PHP 파일(upload.php
)에서 업로드된 ZIP 파일을 처리할 차례입니다.
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$targetDir = "uploads/";
$targetFile = $targetDir . basename($_FILES["zipFile"]["name"]);
$uploadOk = 1;
$zipFileType = pathinfo($targetFile, PATHINFO_EXTENSION);
// 파일 유효성 검사
if ($zipFileType != "zip") {
echo "ZIP 파일만 허용됩니다.";
$uploadOk = 0;
}
// 파일 업로드
if ($uploadOk == 0) {
echo "파일 업로드 실패!";
} else {
if (move_uploaded_file($_FILES["zipFile"]["tmp_name"], $targetFile)) {
echo "파일이 업로드되었습니다.";
} else {
echo "파일 업로드에 실패했습니다!";
}
}
}
?>
2. ZIP 파일 압축 해제하기
이제 업로드된 ZIP 파일을 압축해제하여 원하는 디렉터리에 파일을 추출할 것입니다.
<?php
$zip = new ZipArchive;
if ($zip->open($targetFile) === TRUE) {
$extractPath = "extracted_files/";
$zip->extractTo($extractPath);
$zip->close();
echo 'ZIP 파일이 성공적으로 압축 해제되었습니다.';
} else {
echo 'ZIP 파일을 열 수 없습니다.';
}
?>
위의 코드에서 ZipArchive
클래스를 사용하여 ZIP 파일을 열고, extractTo
메소드를 사용하여 원하는 디렉터리에 파일을 추출합니다.
이제 PHP를 사용하여 ZIP 파일을 업로드하고 압축 해제하는 방법에 대해 알아보았습니다. 이를 통해 사용자는 웹 애플리케이션을 통해 ZIP 파일을 손쉽게 업로드하고 압축 해제할 수 있습니다.