PHP 파일업로드 기능 기본 소스 코드 및 변수 예제입니다.

홈페이지 제작시 수정하여 사용하시면 됩니다.


특징: 

1. 업로드 되는 파일명을 자동 변경하여 한글파일명, 특수기호가 들어간 파일명 등을 DB에 저장 또는 파일 다운로드 구현시 오류가 나지 않도록 해줍니다.

2. 업로드 전의 실제 파일명을 별도 변수에 담아 DB에 저장할 수 있어 파일 다운로드 구현시 실제 파일명으로 다운로드 받을 수 있습니다.

3. 파일 확장자를 체크하여 특정 파일의 업로드 금지를 지정할 수 있습니다.



파일업로드 HTML 코드


예제 파일명: file_upload.html (파일첨부를 할 수 있는 웹페이지입니다.)

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

</head>

<body>

<form method="post" enctype="multipart/form-data" action="./upload.php">

<input type="file" name="upload_file"> 

<input type="submit" value="업로드">

</form>

</body>

</html>


예제 파일명: upload.php (첨부된 파일을 파일 변수에 지정하고 서버로 업로드합니다.)

<?

$file_name = $_FILES['upload_file']['name'];                // 업로드한 파일명

$file_tmp_name = $_FILES['upload_file']['tmp_name'];   // 임시 디렉토리에 저장된 파일명

$file_size = $_FILES['upload_file']['size'];                 // 업로드한 파일의 크기

$mimeType = $_FILES['upload_file']['type'];                 // 업로드한 파일의 MIME Type


// 첨부 파일이 저장될 서버 디렉토리 지정(원하는 경로에 맞게 수정하세요)

$save_dir = './upload/file/';


// 업로드 파일 확장자 검사 (필요시 확장자 추가)

   if($mimeType=="html" || 

   $mimeType=="htm" || 

   $mimeType=="php" || 

   $mimeType=="php3" || 

   $mimeType=="inc" || 

   $mimeType=="pl" || 

   $mimeType=="cgi" || 

   $mimeType=="txt" || 

   $mimeType=="TXT" || 

   $mimeType=="asp" || 

   $mimeType=="jsp" || 

   $mimeType=="phtml" || 

   $mimeType=="js" || 

   $mimeType=="") { 

echo("<script> 

alert('업로드를 할 수 없는 파일형식입니다.'); 

document.location.href = './file_upload.html';    

</script>"); 

exit;

   } 

   

   // 파일명 변경 (업로드되는 파일명을 별도로 생성하고 원래 파일명을 별도의 변수에 지정하여 DB에 기록할 수 있습니다.)

$real_name = $file_name;     // 원래 파일명(업로드 하기 전 실제 파일명) 

$arr = explode(".", $real_name); // 원래 파일의 확장자명을 가져와서 그대로 적용 $file_exe

$arr1 = $arr[0];

$arr2 = $arr[1];

$arr3 = $arr[2];

$arr4 = $arr[3];

if($arr4) { 

$file_exe = $arr4;

} else if($arr3 && !$arr4) { 

$file_exe = $arr3;

} else if($arr2 && !$arr3) { 

$file_exe = $arr2;

}

$file_time = time(); 

$file_Name = "file_".$file_time.".".$file_exe; // 실제 업로드 될 파일명 생성 (본인이 원하는 파일명 지정 가능)  

$change_file_name = $file_Name;  // 변경된 파일명을 변수에 지정 

$real_name = addslashes($real_name); // 업로드 되는 원래 파일명(업로드 하기 전 실제 파일명

$real_size = $file_size;                         // 업로드 되는 파일 크기 (byte)


 

//파일을 저장할 디렉토리 및 파일명 전체 경로

   $dest_url = $save_dir . $change_file_name;

 

//파일을 지정한 디렉토리에 업로드

   if(!move_uploaded_file($file_tmp_name, $dest_url))

   {

      die("파일을 지정한 디렉토리에 업로드하는데 실패했습니다.");

   }



// DB에 기록할 파일 변수 (DB에 저장이 필요한 경우 아래 변수명을 기록하시면 됩니다.)

/*

$change_file_name : 실제 서버에 업로드 된 파일명. 예: file_145736478766.gif

$real_name : 원래 파일명. 예: 풍경사진.gif 

$real_size : 파일 크기(byte)

*/

?>


PHP 파일업로드 기능의 가장 기본적인 소스 코드입니다.

홈페이지 제작시 적절히 수정하여 사용하시면 됩니다.







'프로그래밍 > PHP' 카테고리의 다른 글

PHP cURL POST 전송 사용법 예제  (0) 2020.11.26
[PHP] 로그인 비밀번호 암호화 처리  (8) 2016.01.11

+ Recent posts