[php] PHP를 사용한 파일 업로드와 MIME 타입 검사

웹 애플리케이션을 개발할 때 파일 업로드 기능은 매우 중요합니다. 하지만 사용자가 업로드한 파일이 올바른 형식인지 확인하는 것은 필수적입니다. 이를 위해 MIME 타입 검사가 필요합니다. MIME 타입은 파일의 형식을 식별하기 위해 사용됩니다.

PHP를 이용한 파일 업로드

PHP를 사용하여 파일 업로드를 구현하는 방법은 매우 간단합니다.

<form action="upload.php" method="post" enctype="multipart/form-data">
  <input type="file" name="file">
  <input type="submit" value="업로드">
</form>

위의 HTML 코드는 파일을 업로드할 수 있는 폼을 생성합니다. enctype="multipart/form-data"는 파일 데이터를 서버로 전송하기 위해 필요한 속성입니다.

이제 PHP에서 업로드된 파일을 처리하는 방법을 살펴보겠습니다.

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

if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) {
  echo "파일이 유효하게 업로드되었습니다.";
} else {
  echo "파일 업로드에 실패했습니다.";
}
?>

위의 코드에서는 move_uploaded_file 함수를 사용하여 업로드된 파일을 지정된 디렉토리로 이동시킵니다.

MIME 타입 검사

파일의 MIME 타입은 확장자에 의존하는 것이 아니기 때문에, 사용자가 업로드한 파일의 MIME 타입을 검사하여 실제 파일의 타입과 일치하는지 확인해야 합니다.

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimeType = finfo_file($finfo, $_FILES["file"]["tmp_name"]);

if ($mimeType === "image/jpeg") {
  echo "올바른 파일 형식입니다.";
} else {
  echo "올바르지 않은 파일 형식입니다.";
}
finfo_close($finfo);

위의 코드는 업로드된 파일의 MIME 타입을 확인하여 JPEG 파일인지를 검사합니다.

파일 업로드와 MIME 타입 검사를 통해 웹 애플리케이션에서 안전하고 올바른 파일 처리를 보장할 수 있습니다.

자세한 내용은 PHP 공식 문서를 참고하시기 바랍니다.