PHP / Tutorial / 파일 업로드 만드는 방법

PHP에서 파일 업로드를 구현하려면 HTML 폼과 PHP 스크립트를 함께 사용해야 합니다. 아래에 기본적인 파일 업로드 기능을 구현하는 방법을 단계별로 설명합니다.

  • 다음은 파일을 업로드하기 위한 간단한 HTML 문서입니다. form 요소에 enctype 속성이 꼭 들어가야 합니다.
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>PHP</title>
  </head>
  <body>

<form action="" method="POST" enctype="multipart/form-data">
  <p><input type="file" name="myfile"></p>
  <p><input type="submit" name="action" value="Upload"></p>
</form>

  </body>
</html>

  • 파일을 업로드하면 $_FILES 변수에 배열로 name, type, size, tmp_name, error 정보가 전달됩니다. 아래는 123.png 파일을 업로드했을 때 각 정보를 출력한 것입니다.
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>PHP</title>
  </head>
  <body>

<?php

  if ( $_POST[ 'action' ] == "Upload" ) {

    print_r( $_FILES[ 'myfile' ] );
    echo "<br>";
    echo $_FILES[ 'myfile' ][ 'name' ];
    echo "<br>";
    echo $_FILES[ 'myfile' ][ 'type' ];
    echo "<br>";
    echo $_FILES[ 'myfile' ][ 'size' ];
    echo "<br>";
    echo $_FILES[ 'myfile' ][ 'tmp_name' ];
    echo "<br>";
    echo $_FILES[ 'myfile' ][ 'error' ];

  }

?>

<form action="" method="POST" enctype="multipart/form-data">
  <p><input type="file" name="myfile"></p>
  <p><input type="submit" name="action" value="Upload"></p>
</form>

  </body>
</html>

  • 업로드한 파일은 PHP 설정에 있는 tmp 폴더에 임의의 이름으로 저장되고, 사용이 끝나면 삭제됩니다. 이 파일을 내가 원하는 폴더로 이동해야 하는데, 이때 사용하는 함수는 move_uploaded_file()입니다.
move_uploaded_file(string $from, string $to)
  • 아래는 업로드한 파일을 원본 이름 그대로 uploads 폴더로 이동시킵니다.
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>PHP</title>
  </head>
  <body>

<?php

  if ( $_POST[ "action" ] == "Upload" ) {

    $uploaded_file_name_tmp = $_FILES[ 'myfile' ][ 'tmp_name' ];
    $uploaded_file_name = $_FILES[ 'myfile' ][ 'name' ];
    $upload_folder = "uploads/";

    move_uploaded_file( $uploaded_file_name_tmp, $upload_folder . $uploaded_file_name );

    echo "<p>" . $uploaded_file_name . "을(를) 업로드하였습니다.</p>";

  }

?>

<form action="" method="POST" enctype="multipart/form-data">
  <p><input type="file" name="myfile"></p>
  <p><input type="submit" name="action" value="Upload"></p>
</form>

  </body>
</html>

같은 카테고리 다른 글

PHP / Tutorial / 접속한 IP 확인하는 방법

웹 개발을 하다 보면, 사용자 또는 클라이언트의 IP 주소를 확인해야 할 일이 종종 있습니다. 로그인 시도의 IP 로그 방문자 통계 분석 보안 접속 제한 PHP에서 접속한 IP는 다음 코드로 확인할 수 있습니다.

PHP / Tutorial / 연산자 / 비교 연산자

PHP의 비교 연산자는 두 값을 비교하여 조건의 참(TRUE) 또는 거짓(FALSE)을 반환할 때 사용합니다.

PHP / Tutorial / 반복문 / while, do-while, for

PHP / Tutorial / 반복문 / while, do-while, for

PHP에서 반복문은 코드를 여러 번 실행해야 할 때 유용합니다. PHP에는 여러 종류의 반복문이 있으며, 각기 다른 상황에서 사용할 수 있습니다.

PHP / Tutorial / 조건문 / if, elseif, else

PHP / Tutorial / 조건문 / if, elseif, else

PHP의 if 조건문은 코드의 특정 부분을 조건에 따라 실행할 수 있도록 하는 제어문입니다. 조건이 true로 평가되면 지정된 코드 블록이 실행됩니다.

PHP / Tutorial / 조건문 / switch

PHP의 switch문은 여러 조건을 평가해야 할 때 유용한 조건문입니다. if-else문과 비슷하지만, 특정 값과의 일치를 기준으로 실행 흐름을 제어하는 데 더 간결한 방법을 제공합니다.