웹에서 파일 업로드 기능을 만들 때, 같은 이름의 파일이 여러 번 업로드되면 기존 파일이 덮어써질 수 있습니다. 오늘은 PHP로 기본적인 파일 업로드와 함께 파일명 중복 방지 방법을 함께 알아보겠습니다.
기본 파일 업로드 폼
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="myfile">
<input type="submit" value="업로드">
</form>
PHP 업로드 처리 + 중복 파일명 방지
<?php
$upload_dir = "uploads/";
// 업로드한 원본 파일명 가져오기
$origin_name = basename($_FILES["myfile"]["name"]);
// 파일 확장자 추출
$file_ext = pathinfo($origin_name, PATHINFO_EXTENSION);
// 중복 방지를 위한 유니크 파일명 생성 (업로드 시간 + 랜덤값)
$new_file_name = date("YmdHis") . "_" . mt_rand(1000,9999) . "." . $file_ext;
$upload_file = $upload_dir . $new_file_name;
// 파일 이동 및 업로드 처리
if (move_uploaded_file($_FILES["myfile"]["tmp_name"], $upload_file)) {
echo "파일이 성공적으로 업로드되었습니다. 파일명: " . $new_file_name;
} else {
echo "파일 업로드 실패.";
}
?>
파일명 중복 방지 설명
- date("YmdHis") : 업로드 시각 (연월일시분초)
- mt_rand() : 1000~9999 사이의 난수 추가
- 위 두 값을 조합해 유니크한 파일명을 생성하여 중복 문제 해결
업로드 결과
업로드가 완료되면 uploads/
폴더에 새로운 파일명으로 저장되며, 같은 이름의 파일이 있어도 덮어쓰지 않고 고유하게 저장됩니다.
마무리
이번 글에서는 PHP로 파일 업로드를 처리하고, 파일명 중복 문제까지 해결하는 방법을 알아봤습니다. 다음에는 파일 확장자 검사와 용량 제한, 이미지 리사이즈 방법도 함께 준비할 테니 즐겨찾기 해주세요!