백엔드-PHP

PHP 백엔드

강사: 유백엔드 · 작성자: 이종춘 · 작성일: 2026-07-03 16:40:55 · 조회수: 4

PHP 12강. 파일 업로드(File Upload)
목록으로
PHP 12강. 파일 업로드(File Upload)
1. 파일 업로드란?

파일 업로드는 사용자가 선택한 파일을 서버에 저장하는 기능입니다.

예를 들어

이미지
PDF
동영상
엑셀 파일

등을 서버로 전송할 수 있습니다.

2. 업로드 구조
사용자



파일 선택



HTML Form



PHP



upload 폴더



MySQL(파일명 저장)

실제 파일은 서버 폴더에 저장되고,

DB에는 파일명 또는 경로를 저장합니다.

3. HTML Form

파일 업로드를 하려면

반드시

enctype="multipart/form-data"

를 추가해야 합니다.

<form

action="upload.php"

method="post"

enctype="multipart/form-data">

<input

type="file"

name="photo">

<button>

업로드

</button>

</form>
4. PHP에서 파일 받기

PHP는

$_FILES

를 사용합니다.

<?php

print_r($_FILES);

?>
5. 파일 이름
$fileName =

$_FILES["photo"]["name"];

echo $fileName;

예)

golf.jpg
6. 임시 파일
$tmp =

$_FILES["photo"]["tmp_name"];

PHP는 먼저

임시폴더에 저장합니다.

7. move_uploaded_file()

실제 서버에 저장

move_uploaded_file(

$tmp,

"upload/".$fileName

);
8. upload 폴더

프로젝트

project

upload

images

css

index.php

업로드한 파일은

upload 폴더에 저장합니다.

9. 이미지 출력
<img

src="upload/<?php echo $fileName; ?>"

width="300">
10. 파일 크기
$size =

$_FILES["photo"]["size"];

예)

250000

(Byte)

11. 파일 확장자
$ext =

pathinfo(

$fileName,

PATHINFO_EXTENSION

);

결과

jpg
12. 업로드 제한
if(

$ext=="jpg"

||

$ext=="png"

){

echo "업로드 가능";

}

실무에서는 허용된 확장자만 업로드합니다.

13. 파일 크기 제한
if(

$size > 5000000

){

echo "5MB 초과";

}
14. 파일명 변경

중복을 방지하기 위해

$newName =

time()

.

"_"

.

$fileName;

예)

1750000000_golf.jpg
15. 동부산CC 예제

관리자



코스 사진 선택



upload.php



upload 폴더



gallery 테이블



React 출력

16. MySQL 저장
gallery

id

title

image

created_at

DB에는

upload/golf.jpg

같은 경로를 저장합니다.

17. React와 비교

React

<input

type="file"

/>

PHP

$_FILES

React는 선택,

PHP는 저장을 담당합니다.

18. 실무 예제

관리자



배너 등록



파일 업로드



DB 저장



메인페이지 출력

19. 실습 과제

다음 기능을 만들어 보세요.

이미지 선택
업로드
upload 폴더 저장
화면 출력

그리고

동부산CC

코스 이미지를

3장 업로드해 보세요.

20. 정리

파일 업로드는 사용자가 선택한 파일을 서버에 저장하는 기능입니다.

HTML Form에서는 enctype="multipart/form-data"를 반드시 설정해야 하며, PHP에서는 $_FILES를 이용하여 파일 정보를 확인하고 move_uploaded_file()로 서버에 저장합니다.

실무에서는 파일 확장자와 크기를 검사하고, 파일명을 변경하여 중복을 방지하는 것이 일반적입니다.

동부산CC 프로젝트에서는 갤러리, 코스 이미지, 공지사항 이미지, 관리자 배너 등을 이 방식으로 구현할 수 있습니다.
#PHP 12강. 파일 업로드(File Upload)

첨부 파일

0개
첨부된 파일이 없습니다.

댓글 / 답글

0개
댓글을 작성하려면 로그인하세요.
아직 댓글이 없습니다.