[php]ファイルのアップロード


file_upload.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHP 파일 업로드</title>
</head>

<body>
    <form action="upload.php" method="POST" enctype="multipart/form-data">
        <input type="file" name="userfile">
        <input type="submit" value="upload">
    </form>
</body>

</html>

upload.php

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>파일 업로드 결과</title>
</head>

<body>
    <?php
    // ini_set: php 설정을 runtime 상황일 때 바꾸는 것
    // display_errors: On 설정
    ini_set("display_errors", "1");

    // 업로드 디렉토리 지정
    // 웹 서버 DocumentRoot -> D:\develop\bitnami\wampstack\apache2\htdocs
    $uploadDir = 'D:\develop\bitnami\wampstack\apache2\htdocs\opentutorials-php-uploads\\';

    // 업로드 될 파일의 이름 지정 (경로 + 이름);
    // basename: 보안과 관련된... 파일이름 설정?
    $uploadFile = $uploadDir . basename($_FILES['userfile']['name']);

    echo '<pre>';

    // 서버에 임시적으로 업로드 되어있던 파일: tmp_name
    // tmp_name을 $uploadFile로 이동시킨다.
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadFile)) {
        echo "파일이 유효하고, 성공적으로 업로드 되었습니다.";
    } else {
        print "파일 업로드 공격의 가능성이 있습니다!\n";
    }
    echo '자세한 디버깅 정보입니다:';
    print_r($_FILES);
    print '</pre>';
    ?>
    
	<!-- 이미지 경로는 url 경로로 설정해주어야 함. -->
    <img src="/opentutorials-php-uploads/<?= $_FILES['userfile']['name'] ?>" alt="">
</body>

</html>
  • Thanks to生活コード