본문 바로가기
카테고리 없음

PHP 파일 업로드 시 확장자 검사 및 업로드 제한하는 방법

by 오디와이 2025. 4. 28.

 

파일 업로드 기능을 구현할 때 반드시 고려해야 할 것 중 하나는 업로드할 파일의 확장자를 제한하는 것입니다. 이번 글에서는 PHP로 이미지 파일만 업로드하도록 검사하는 방법을 쉽게 알려드릴게요.

확장자 검사 방법

<?php
$upload_dir = "uploads/";
$allowed_ext = array("jpg", "jpeg", "png", "gif");

$file_name = $_FILES["myfile"]["name"];
$tmp_name = $_FILES["myfile"]["tmp_name"];
$file_ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));

if (in_array($file_ext, $allowed_ext)) {
  $new_name = date("YmdHis") . "_" . mt_rand(1000,9999) . "." . $file_ext;
  $upload_file = $upload_dir . $new_name;

  if (move_uploaded_file($tmp_name, $upload_file)) {
    echo "업로드 성공!";
  } else {
    echo "업로드 실패!";
  }
} else {
  echo "허용되지 않는 파일 형식입니다.";
}
?>

코드 설명

  • $allowed_ext : 허용할 확장자 배열
  • pathinfo() : 파일의 확장자 추출
  • in_array() : 확장자가 허용 목록에 있는지 검사
  • 허용 파일만 업로드하고, 그 외는 업로드 차단

실행 결과

jpg, jpeg, png, gif 파일만 업로드 가능하며, 다른 형식은 업로드가 거부됩니다.

추가 팁

추가로 filesize() 함수를 사용해 파일 크기 제한도 설정해보세요!

마무리

간단하지만 중요한 파일 업로드 보안 처리 방법을 배워봤습니다.

다음 글에서는 업로드한 파일을 목록으로 불러와서 표시하는 방법을 소개해드릴게요!