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 클래스(CLASS) 사용 방법 (0) | 2024.11.22 |
---|---|
PHP 오류 내용 웹페이지에 출력하기 (0) | 2024.09.17 |
HTML 페이지 PDF 파일로 다운로드 하기 소스코드 (0) | 2024.09.02 |
PHP cURL POST 전송 사용법 예제 (0) | 2020.11.26 |
[PHP] 로그인 비밀번호 암호화 처리 (8) | 2016.01.11 |