본문 바로가기
Web Programming Language/PHP

PHP) move_uploaded_file() 함수

by manchesterandthecity 2020. 11. 3.

move_uploaded_file()서버로 전송된 파일을 저장할 때 사용하는 함수입니다.

 

  • 업로드된 파일을 새 위치로 옮기는 함수
  • 첨부파일 포함한 HTML form을 PHP 파일에 제출(submit)하면 /tmp/phpXXXXXX 파일로 업로드됨
  • 이것을 원하는 위치($destination)로 이동시켜 사용
  • 파일이 이미 있을 경우 덮어쓰게 되므로 주의
  • 웹으로 접근가능한 경로로 이동할 경우 해킹 위험 있으므로 주의

 

bool move_uploaded_file ( string $filename , string $destination )

 $filename : 업로드된 파일명

 $destionation : 이동할 위치

 

 

 

파일업로드 전체를 살펴보는 것이 이해가 빠를거 같습니다.

 

 

2개의 파일로 구현을 해 봅시다.

 

이용자에게 파일을 선택하고 업로드를 할 수 있도록 하는 폼 페이지(ex. upload.html)가 필요하고, 폼에서 전송한 내용을 서버측 저장공간에 저장하는 기능을 할 파일(ex. upload.php)이 필요합니다.

 

 

 

body 태그 안에 아래 코드를 작성합시다.

 

 

<upload.html>

<form method="post" enctype="multipart/form-data" action="upload.php">
<input type="file" name="upload_file">
<input type="submit" value="업로드">
</form> 

 

 

업로드할 파일을 선택하고 '업로드'버튼을 클릭하면, 서버쪽 upload.php에 그 내용이 전달되도록 작성되어있습니다.

 

upload.php는 어떤 작업을 수행하는지 살펴보겠습니다.

 

 

<upload.php>

<?php

$file_name = $_FILES['upload_file']['name'];

$tmp_file = $_FILES['upload_file']['tmp_name'];

$file_path = './files/'.$file_name;

$r = move_uploaded_file($tmp_file, $file_path);

?> 

 

upload.html 의 form 태그를 이용해서 전송된 파일은 $_FILES를 통해 접근 가능합니다.

 

서버가 업로드받은 파일은 $_FILES['upload_file']['tmp_name']에 들어있습니다.

 

  • tmp_name => 업로드된 파일이 임시 저장되는 곳

 

이제 저장될 위치를 $file_path 로 설정하고, move_uploaded_file()함수를 위의 예처럼 실행시키면, 지정 위치에 업로드한 파일이 저장됩니다.

 

 

 

 

 

 



출처 :

https://zzaps.tistory.com/52 [궁극의 잡 블로그]

댓글