파일 업로드 기능을 구현할 때 반드시 고려해야 할 것 중 하나는 업로드할 파일의 확장자를 제한하는 것입니다. 이번 글에서는 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()
함수를 사용해 파일 크기 제한도 설정해보세요!
마무리
간단하지만 중요한 파일 업로드 보안 처리 방법을 배워봤습니다.
다음 글에서는 업로드한 파일을 목록으로 불러와서 표시하는 방법을 소개해드릴게요!