๋ฃจ์  ์†Œํ”„ํŠธ ๋กœ๊ณ 

216.73.216.248 TODAY : 62

PHP ๊ฐ•์˜

 > 

PHP - ์ค‘๊ธ‰

๐Ÿ“š PHP ์ค‘๊ธ‰ - 4์ฃผ์ฐจ: ํŒŒ์ผ ์—…๋กœ๋“œ ๋ฐ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ - 01 HTML ํผ์„ ์ด์šฉํ•œ ํŒŒ์ผ ์—…๋กœ๋“œ

๐Ÿ“š PHP ์ค‘๊ธ‰ - 4์ฃผ์ฐจ: ํŒŒ์ผ ์—…๋กœ๋“œ ๋ฐ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ - 01 HTML ํผ์„ ์ด์šฉํ•œ ํŒŒ์ผ ์—…๋กœ๋“œ
ํ‰์  10.0 ๋ผ์ด์„ผ์Šค free
์‚ฌ์šฉ์žํ‰์  10.0 ์šด์˜์ฒด์ œ
๋‹ค์šด๋กœ๋“œ 1 ํŒŒ์ผํฌ๊ธฐ 0
์ œ์ž‘์‚ฌ LUZENSOFT ๋“ฑ๋ก์ผ 2025-07-24 15:13:35
์กฐํšŒ์ˆ˜ 9
- ์„ค๋ช…

๐Ÿ“š PHP ์ค‘๊ธ‰ - 4์ฃผ์ฐจ: ํŒŒ์ผ ์—…๋กœ๋“œ ๋ฐ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ - 01 HTML ํผ์„ ์ด์šฉํ•œ ํŒŒ์ผ ์—…๋กœ๋“œ





์•ˆ๋…•ํ•˜์„ธ์š”! #PHP ์ค‘๊ธ‰ ๊ณผ์ • 4์ฃผ์ฐจ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ #์›น_์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ€์žฅ ํ”ํ•˜๊ฒŒ ์ ‘ํ•˜๋Š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ธ #ํŒŒ์ผ_์—…๋กœ๋“œ(File Upload)์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์‚ฌ์šฉ์ž๊ฐ€ #HTML #ํผ(Form)์„ ํ†ตํ•ด ํŒŒ์ผ์„ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ณผ์ •์„ ๋‹ค๋ฃฐ ๊ฑฐ์˜ˆ์š”. #๊ฒŒ์‹œํŒ์— #์ด๋ฏธ์ง€๋ฅผ ์ฒจ๋ถ€ํ•˜๊ฑฐ๋‚˜ #ํ”„๋กœํ•„_์‚ฌ์ง„์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ๊ณณ์— ํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ด๋‹ˆ ํ•จ๊ป˜ ์‚ดํŽด๋ณผ๊นŒ์š”?





1. ํŒŒ์ผ ์—…๋กœ๋“œ์˜ ๊ฐœ์š” ๋ฐ ๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ

uploadImage



#ํŒŒ์ผ_์—…๋กœ๋“œ๋Š” ์‚ฌ์šฉ์ž์˜ ๋กœ์ปฌ #PC์— ์žˆ๋Š” #ํŒŒ์ผ์„ #์›น_์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ๋‹จ์ˆœํžˆ ํŒŒ์ผ์„ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์„ ๋„˜์–ด, #๋ณด์•ˆ(Security)์— ๋Œ€ํ•œ ๊นŠ์€ ์ดํ•ด๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์•…์˜์ ์ธ ์‚ฌ์šฉ์ž๊ฐ€ #์›น_์…ธ(Web Shell)์ด๋‚˜ #๋ฐ”์ด๋Ÿฌ์Šค(Virus)๋ฅผ ํฌํ•จํ•œ #์•…์„ฑ_ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜์—ฌ #์„œ๋ฒ„๋ฅผ_๊ณต๊ฒฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .



๋”ฐ๋ผ์„œ #ํŒŒ์ผ_์—…๋กœ๋“œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ #๋ณด์•ˆ_๊ณ ๋ ค์‚ฌํ•ญ์„ ๋ฐ˜๋“œ์‹œ ์ง€์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.



  • #ํ™•์žฅ์ž_๊ฒ€์‚ฌ: ์—…๋กœ๋“œ ๊ฐ€๋Šฅํ•œ #ํŒŒ์ผ_ํ˜•์‹์„ ์—„๊ฒฉํ•˜๊ฒŒ ์ œํ•œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: .jpg, .png, .gif๋งŒ ํ—ˆ์šฉ)

  • #MIME_ํƒ€์ž…_๊ฒ€์‚ฌ: #HTTP_ํ—ค๋”์— ํฌํ•จ๋œ #MIME_ํƒ€์ž… ์ •๋ณด๋„ ํ™•์ธํ•˜์—ฌ #ํ™•์žฅ์ž_์œ„๋ณ€์กฐ๋ฅผ ๋ง‰์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • #ํŒŒ์ผ_ํฌ๊ธฐ_์ œํ•œ: ๋„ˆ๋ฌด ํฐ ํŒŒ์ผ ์—…๋กœ๋“œ๋ฅผ ๋ง‰์•„ #์„œ๋ฒ„_๊ณผ๋ถ€ํ•˜(Server Overload)๋‚˜ #์„œ๋น„์Šค_๊ฑฐ๋ถ€_๊ณต๊ฒฉ(DoS Attack)์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  • #ํŒŒ์ผ_์ด๋ฆ„_๋ณ€๊ฒฝ: ์—…๋กœ๋“œ๋œ ํŒŒ์ผ ์ด๋ฆ„์„ ๋ฌด์ž‘์œ„ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ #๊ฒฝ๋กœ_ํƒ์ƒ‰_๊ณต๊ฒฉ(Path Traversal Attack)์ด๋‚˜ #ํŒŒ์ผ_๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  • #์—…๋กœ๋“œ_๋””๋ ‰ํ„ฐ๋ฆฌ_๋ถ„๋ฆฌ: ์›น์—์„œ ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๋ณ„๋„์˜ #๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ €์žฅํ•˜๊ณ , ํ•„์š”์‹œ #์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  • #์›น_์„œ๋ฒ„_์„ค์ •_๊ฐ•ํ™”: #PHP ์„ค์ •(php.ini)์—์„œ #ํŒŒ์ผ_์—…๋กœ๋“œ ๊ด€๋ จ ์ œํ•œ(upload_max_filesize, post_max_size ๋“ฑ)์„ ์ ์ ˆํžˆ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.





2. HTML ํผ(Form) ์„ค์ •

uploadImage



#ํŒŒ์ผ_์—…๋กœ๋“œ๋ฅผ ์œ„ํ•œ #HTML #ํผ์€ ์ผ๋ฐ˜์ ์ธ ํผ๊ณผ ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.




2-1. enctype="multipart/form-data"




#ํŒŒ์ผ_์—…๋กœ๋“œ ํผ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์†์„ฑ์ž…๋‹ˆ๋‹ค. ์ด ์†์„ฑ์ด ์—†์œผ๋ฉด ํŒŒ์ผ ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋ฒ„๋กœ ์ œ๋Œ€๋กœ ์ „์†ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. #multipart/form-data๋Š” ํผ ๋ฐ์ดํ„ฐ์™€ ํŒŒ์ผ ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธ์ฝ”๋”ฉํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.




2-2. method="POST"




#ํŒŒ์ผ_๋ฐ์ดํ„ฐ๋Š” #URL์— ํฌํ•จ๋  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ๋ฐ˜๋“œ์‹œ #POST_๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.




2-3. <input type="file" name="file_upload">




#ํŒŒ์ผ_์„ ํƒ_ํ•„๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. name ์†์„ฑ์€ PHP์—์„œ ํŒŒ์ผ์„ ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉ๋  #๋ณ€์ˆ˜_์ด๋ฆ„์ด ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ํ•œ ๋ฒˆ์— ์—…๋กœ๋“œํ•˜๋ ค๋ฉด multiple ์†์„ฑ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



upload_form.html ์˜ˆ์‹œ:

HTML

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ํŒŒ์ผ ์—…๋กœ๋“œ ํผ</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 50px; }
        form { background-color: #f9f9f9; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); width: 400px; margin: auto; }
        h2 { text-align: center; color: #333; }
        label { display: block; margin-bottom: 8px; font-weight: bold; }
        input[type="file"] { margin-bottom: 15px; border: 1px solid #ddd; padding: 8px; border-radius: 4px; background-color: #fff; width: calc(100% - 18px); }
        input[type="submit"] { background-color: #007bff; color: white; padding: 10px 15px; border: none; border-radius: 5px; cursor: pointer; font-size: 16px; width: 100%; }
        input[type="submit"]:hover { background-color: #0056b3; }
    </style>
</head>
<body>
    <h2>ํŒŒ์ผ ์—…๋กœ๋“œ</h2>
    <form action="upload_process.php" method="POST" enctype="multipart/form-data">
        <label for="my_file">์—…๋กœ๋“œํ•  ํŒŒ์ผ ์„ ํƒ:</label>
        <input type="file" name="my_file" id="my_file" required>
        <input type="submit" value="ํŒŒ์ผ ์—…๋กœ๋“œ">
    </form>
</body>
</html>





3. PHP์—์„œ ํŒŒ์ผ ์—…๋กœ๋“œ ์ฒ˜๋ฆฌ


uploadImage


#PHP๋Š” ์—…๋กœ๋“œ๋œ #ํŒŒ์ผ_๋ฐ์ดํ„ฐ๋ฅผ ์ „์—ญ ๋ณ€์ˆ˜์ธ #$_FILES๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด #$_FILES ๋ฐฐ์—ด์€ ์—…๋กœ๋“œ๋œ ๊ฐ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.




$_FILES ๋ฐฐ์—ด์˜ ๊ตฌ์กฐ




$_FILES['input_name']์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. (์—ฌ๊ธฐ์„œ input_name์€ HTML input type="file"์˜ name ์†์„ฑ ๊ฐ’์ž…๋‹ˆ๋‹ค.)

  • name: ํด๋ผ์ด์–ธํŠธ #PC์— ์žˆ๋Š” #์›๋ณธ_ํŒŒ์ผ_์ด๋ฆ„

  • type: ํŒŒ์ผ์˜ #MIME_ํƒ€์ž… (์˜ˆ: image/jpeg, text/plain)

  • tmp_name: #์„œ๋ฒ„์—_์ž„์‹œ๋กœ_์ €์žฅ๋œ_ํŒŒ์ผ์˜_๊ฒฝ๋กœ์™€_์ด๋ฆ„

  • error: #ํŒŒ์ผ_์—…๋กœ๋“œ_์‹œ_๋ฐœ์ƒํ•œ_์˜ค๋ฅ˜_์ฝ”๋“œ (#UPLOAD_ERR_OK๋Š” ์˜ค๋ฅ˜ ์—†์Œ์„ ์˜๋ฏธ)

  • size: ์—…๋กœ๋“œ๋œ #ํŒŒ์ผ์˜_ํฌ๊ธฐ(๋ฐ”์ดํŠธ ๋‹จ์œ„)




ํŒŒ์ผ ์—…๋กœ๋“œ ์ฒ˜๋ฆฌ ๋กœ์ง (PHP)




upload_process.php ํŒŒ์ผ์—์„œ ์‹ค์ œ ํŒŒ์ผ ์—…๋กœ๋“œ ์ฒ˜๋ฆฌ ๋ฐ #๋ณด์•ˆ_๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.



PHP

<?php
// upload_process.php

// 1. ์—…๋กœ๋“œ ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ • (๋ฐ˜๋“œ์‹œ ์›น ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒ์œ„ ๊ฒฝ๋กœ์— ๋‘๋Š” ๊ฒƒ์ด ๋ณด์•ˆ์ƒ ์ข‹์Œ)
$upload_dir = './uploads/'; // ํ˜„์žฌ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ๋Š” ํด๋” ํ•˜์œ„์˜ 'uploads' ํด๋”

// 'uploads' ํด๋”๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑ (๊ถŒํ•œ 0755)
if (!is_dir($upload_dir)) {
    mkdir($upload_dir, 0755, true);
}

// 2. ํŒŒ์ผ ์—…๋กœ๋“œ ์˜ค๋ฅ˜ ํ™•์ธ
// UPLOAD_ERR_OK: ํŒŒ์ผ ์—…๋กœ๋“œ ์„ฑ๊ณต
if (!isset($_FILES['my_file']) || $_FILES['my_file']['error'] !== UPLOAD_ERR_OK) {
    switch ($_FILES['my_file']['error']) {
        case UPLOAD_ERR_INI_SIZE:
        case UPLOAD_ERR_FORM_SIZE:
            echo "์—…๋กœ๋“œ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ PHP ์„ค์ • ๋˜๋Š” ํผ์—์„œ ํ—ˆ์šฉ๋œ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค.";
            break;
        case UPLOAD_ERR_NO_FILE:
            echo "ํŒŒ์ผ์ด ์—…๋กœ๋“œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.";
            break;
        default:
            echo "ํŒŒ์ผ ์—…๋กœ๋“œ ์ค‘ ์•Œ ์ˆ˜ ์—†๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ์ฝ”๋“œ: " . $_FILES['my_file']['error'];
            break;
    }
    exit;
}

// 3. ์—…๋กœ๋“œ๋œ ํŒŒ์ผ ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ
$file_name = $_FILES['my_file']['name']; // ์›๋ณธ ํŒŒ์ผ ์ด๋ฆ„
$file_type = $_FILES['my_file']['type']; // MIME ํƒ€์ž…
$file_tmp_name = $_FILES['my_file']['tmp_name']; // ์ž„์‹œ ํŒŒ์ผ ๊ฒฝ๋กœ
$file_size = $_FILES['my_file']['size']; // ํŒŒ์ผ ํฌ๊ธฐ

// 4. ๋ณด์•ˆ ๊ฒ€์‚ฌ (๋งค์šฐ ์ค‘์š”!)

// 4-1. ํŒŒ์ผ ํฌ๊ธฐ ์ œํ•œ (์˜ˆ: 5MB)
$max_file_size = 5 * 1024 * 1024; // 5MB
if ($file_size > $max_file_size) {
    echo "ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ํฝ๋‹ˆ๋‹ค. (์ตœ๋Œ€ 5MB)";
    exit;
}

// 4-2. ํ—ˆ์šฉ๋œ ํŒŒ์ผ ํ™•์žฅ์ž ๋ฐ MIME ํƒ€์ž… ์„ค์ •
$allowed_extensions = ['jpg', 'jpeg', 'png', 'gif', 'pdf'];
$allowed_mime_types = ['image/jpeg', 'image/png', 'image/gif', 'application/pdf'];

// ํŒŒ์ผ ํ™•์žฅ์ž ์ถ”์ถœ ๋ฐ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜
$file_ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));

// MIME ํƒ€์ž… ๊ฒ€์‚ฌ ($_FILES['type']์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์œ„์กฐ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ)
// ์‹ค์ œ ํŒŒ์ผ์˜ MIME ํƒ€์ž…์„ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋” ์•ˆ์ „ํ•˜๋‚˜, ์—ฌ๊ธฐ์„œ๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ฒ€์‚ฌ๋งŒ ํฌํ•จ
if (!in_array($file_ext, $allowed_extensions) || !in_array($file_type, $allowed_mime_types)) {
    echo "ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ํŒŒ์ผ ํ˜•์‹์ž…๋‹ˆ๋‹ค. (ํ—ˆ์šฉ: JPG, JPEG, PNG, GIF, PDF)";
    exit;
}

// 5. ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ (๋ณด์•ˆ์„ ์œ„ํ•ด ํ•„์ˆ˜)
// ์œ ๋‹ˆํฌํ•œ ํŒŒ์ผ ์ด๋ฆ„ ์ƒ์„ฑ (์˜ˆ: ํ˜„์žฌ ์‹œ๊ฐ„์„ ๊ธฐ๋ฐ˜ + ์›๋ณธ ํ™•์žฅ์ž)
$new_file_name = uniqid() . '.' . $file_ext;
$destination = $upload_dir . $new_file_name; // ์ €์žฅ๋  ์ตœ์ข… ๊ฒฝ๋กœ

// 6. ์ž„์‹œ ํŒŒ์ผ์„ ์ตœ์ข… ๋ชฉ์ ์ง€๋กœ ์ด๋™
// move_uploaded_file() ํ•จ์ˆ˜๋Š” ์—…๋กœ๋“œ๋œ ์ž„์‹œ ํŒŒ์ผ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค.
if (move_uploaded_file($file_tmp_name, $destination)) {
    echo "ํŒŒ์ผ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์—…๋กœ๋“œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.<br>";
    echo "์ €์žฅ๋œ ํŒŒ์ผ๋ช…: " . htmlspecialchars($new_file_name) . "<br>";
    echo "ํŒŒ์ผ ๊ฒฝ๋กœ: " . htmlspecialchars($destination) . "<br>";
    echo "<img src='" . htmlspecialchars($destination) . "' alt='์—…๋กœ๋“œ๋œ ์ด๋ฏธ์ง€' style='max-width:300px;'>";
} else {
    echo "ํŒŒ์ผ ์—…๋กœ๋“œ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.";
}
?>





4. PHP ์„ค์ • (php.ini) ํ™•์ธ


uploadImage


#PHP์˜ #php.ini ์„ค์ • ํŒŒ์ผ์—๋Š” #ํŒŒ์ผ_์—…๋กœ๋“œ์™€ ๊ด€๋ จ๋œ ์ค‘์š”ํ•œ ์ง€์‹œ์–ด๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.



  • file_uploads = On: ํŒŒ์ผ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. (๊ธฐ๋ณธ๊ฐ’ On)

  • upload_max_filesize = 2M: ๊ฐœ๋ณ„ ํŒŒ์ผ ์—…๋กœ๋“œ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: 2M์€ 2๋ฉ”๊ฐ€๋ฐ”์ดํŠธ)

  • post_max_size = 8M: #POST_์š”์ฒญ์œผ๋กœ ์ „์†ก๋  ์ˆ˜ ์žˆ๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. (upload_max_filesize๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.)

  • upload_tmp_dir =: ์—…๋กœ๋“œ๋œ ํŒŒ์ผ์ด ์ž„์‹œ๋กœ ์ €์žฅ๋  ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. (์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์‹œ์Šคํ…œ ๊ธฐ๋ณธ ์ž„์‹œ ๋””๋ ‰ํ„ฐ๋ฆฌ ์‚ฌ์šฉ)

  • max_file_uploads = 20: ํ•œ ๋ฒˆ์˜ ์š”์ฒญ์œผ๋กœ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํŒŒ์ผ ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค.



์ด ๊ฐ’๋“ค์„ ์›น ์„œ๋ฒ„์˜ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•„์š”์— ๋งž๊ฒŒ ์กฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ํ›„์—๋Š” #์›น_์„œ๋ฒ„(Apache, Nginx ๋“ฑ)๋ฅผ #์žฌ์‹œ์ž‘ํ•ด์•ผ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.



์˜ค๋Š˜์€ #HTML #ํผ์„ ์ด์šฉํ•œ #ํŒŒ์ผ_์—…๋กœ๋“œ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•๊ณผ #๋ณด์•ˆ_๊ณ ๋ ค์‚ฌํ•ญ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.