ȨÀ¸·Î | ¹«·áȸ¿ø°¡ÀÔ | ¾ÆÀ̵ð/ºñ¹øÃ£±â
ÃßõÀ½¾Ç¹æ¼Û
PHP - POST ¹æ½ÄÀÇ ÆÄÀÏ ¾÷·Îµå ´Ù·ç±â
11³â Àü
PHP - POST ¹æ½ÄÀÇ ÆÄÀÏ ¾÷·Îµå ´Ù·ç±â

POST ¹æ½Ä ¾÷·Îµå

ÀÌ ±â´ÉÀº »ç¶÷µéÀÌ ÅØ½ºÆ®¿Í ¹ÙÀ̳ʸ® ÆÄÀÏÀ» ¿Ã¸± ¼ö ÀÖ°Ô ÇÕ´Ï´Ù. PHPÀÇ ÀÎÁõ°ú ÆÄÀÏ Á¶ÀÛ ÇÔ¼ö·Î, ´©±º°¡¿¡°Ô ¾÷·Îµå¸¦ Çã¿ëÇϰųª, ¾÷·ÎµåÇÑ ÆÄÀÏ¿¡ ´ëÇÑ ¸ðµç Á¶ÀÛÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.

PHP´Â RFC-1867 ȣȯ ºê¶ó¿ìÀú(³Ý½ºÄÉÀÌÇÁ ³×ºñ°ÔÀÌÅÍ 3 ÀÌ»ó, ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® ÀÎÅÍ³Ý ÀͽºÇ÷η¯ 3+ÆÐÄ¡³ª ÆÐÄ¡ ¾øÀÌ ±× ÀÌ»ó ¹öÀüÀ» Æ÷ÇÔ)¶ó¸é ÆÄÀÏ ¾÷·Îµå¸¦ ¹ÞÀ» ¼ö ÀÖ´Â ´É·ÂÀ» °¡Áö°í ÀÖ½À´Ï´Ù.



Note: °ü·Ã ȯ°æ¼³Á¤
php.iniÀÇ file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size Áö½Ã¾î¸¦ Âü°íÇϽʽÿÀ.



PHP´Â ³Ý½ºÄÉÀÌÇÁ ÄÄÆ÷Àú¿Í W3CÀÇ Amaya Ŭ¶óÀÌ¾ðÆ®°¡ »ç¿ëÇÏ´Â PUT ¹æ½Ä ÆÄÀÏ ¾÷·Îµåµµ Áö¿øÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº PUT ¹æ½Ä Áö¿øÀ» Âü°íÇϽʽÿÀ.


Example #1 ÆÄÀÏ ¾÷·Îµå Æû

ÆÄÀÏ ¾÷·Îµå È­¸éÀº ´ÙÀ½°ú °°Àº Ưº°ÇÑ ÆûÀ¸·Î ¸¸µé¾îÁý´Ï´Ù:
----------------------------------------------------------------------------------------------------------
<!-- µ¥ÀÌÅÍ ÀÎÄÚµùÇü enctypeÀº ²À ¾Æ·¡Ã³·³ ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù -->
<form enctype="multipart/form-data" action="_URL_" method="POST">
        <!-- MAX_FILE_SIZE´Â file ÀÔ·Â Çʵ庸´Ù ¸ÕÀú ³ª¿Í¾ß ÇÕ´Ï´Ù -->
        <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
        <!-- inputÀÇ nameÀº $_FILES ¹è¿­ÀÇ nameÀ» °áÁ¤ÇÕ´Ï´Ù -->
        ÀÌ ÆÄÀÏÀ» Àü¼ÛÇÕ´Ï´Ù: <input name="userfile" type="file" />
        <input type="submit" value="ÆÄÀÏ Àü¼Û" />
</form>
----------------------------------------------------------------------------------------------------------
À§ ¿¹Á¦¿¡¼­ »ç¿ëÇÑ __URL__Àº PHP ÆÄÀÏÀ» ÁöÁ¤Çϵµ·Ï ±³Ã¼ÇØ¾ß ÇÕ´Ï´Ù.


¼û°ÜÁø MAX_FILE_SIZE(¹ÙÀÌÆ®·Î ÃøÁ¤) Çʵå´Â file ÀÔ·Â Çʵ庸´Ù ¸ÕÀú ³ª¿Í¾ßÇϸç, PHP°¡ ¹Þ¾ÆµéÀÌ´Â ÃÖ´ë ÆÄÀÏ Å©±â°ªÀ» °¡Áý´Ï´Ù. ºê¶ó¿ìÀú¿¡¼­ ÀÌ °ªÀ» ¼ÓÀÌ´Â°Ç ¸Å¿ì °£´ÜÇϹǷÎ, ÀÌ ±â´ÉÀ¸·Î À̺¸´Ù Å« ÆÄÀÏÀÌ ¸·Èú°Å¶ó°í »ý°¢ÇÏÁö ¸¶½Ê½Ã¿À. ´ë½Å, ÃÖ´ë Å©±â¿¡ ´ëÇÑ PHP ¼³Á¤Àº ¼ÓÀÏ ¼ö ¾ø½À´Ï´Ù. ÀÌ Æû ¿ä¼Ò´Â »ç¿ëÀÚ°¡ Å« ÆÄÀÏÀÌ Àü¼ÛµÇ´Â°É ±â´Ù¸° ÈÄ¿¡¼­¾ß ÆÄÀÏÀÌ ³Ê¹« Ä¿¼­ Àü¼Û¿¡ ½ÇÆÐÇÑ´Ù´Â°É ¾Ë°Ô µÇ´Â°É ¹æÁöÇϱâ À§Çؼ­ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.


Note: ÆÄÀÏ ¾÷·Îµå ÆûÀÌ enctype="multipart/form-data"¸¦ °¡Á³´ÂÁö È®ÀÎÇϽʽÿÀ. ±×·¸Áö ¾ÊÀ¸¸é ÆÄÀÏ ¾÷·Îµå´Â ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù.





¾÷·ÎµåÇÑ ÆÄÀÏÀ» Á¤ÀÇÇÏ´Â º¯¼ö´Â PHP ¹öÀü°ú ȯ°æ ¼³Á¤¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù. ÀÚµ¿ Àü¿ª $_FILES°¡ PHP 4.1.0ºÎÅÍ Á¸ÀçÇÕ´Ï´Ù. $HTTP_POST_FILES ¹è¿­Àº PHP 4.1.0 ÀÌÀü¿¡µµ Á¸ÀçÇÕ´Ï´Ù. ÀÌ ¹è¿­µéÀº ¾÷·Îµå µÈ ÆÄÀÏÀÇ ¸ðµç Á¤º¸¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. $_FILES¸¦ »ç¿ëÇÏ´Â ÆíÀ» ±ÇÀåÇÕ´Ï´Ù. PHP Áö½Ã¾î register_globals°¡ onÀ϶§´Â, °ü·ÃµÈ º¯¼ö¸íµµ Á¸ÀçÇÕ´Ï´Ù. register_globalsÀÇ ±âº»°ªÀº PHP 4.2.0ºÎÅÍ offÀÔ´Ï´Ù.
¿¹Á¦ ½ºÅ©¸³Æ®¿¡¼­ $_FILESÀÇ ³»¿ëÀº ´ÙÀ½°ú °°½À´Ï´Ù. À§ ¿¹Á¦ ½ºÅ©¸³Æ®¿¡¼­ »ç¿ëÇÑ ÆÄÀÏ ¾÷·Îµå À̸§ userfile·Î Ç¥ÇöÇÔ¿¡ ÁÖÀÇÇϽʽÿÀ. ¾î¶°ÇÑ À̸§ÀÌ¶óµµ °¡Áú ¼ö ÀÖ½À´Ï´Ù.

$_FILES['userfile']['name']
Ŭ¶óÀÌ¾ðÆ® ¸Ó½Å¿¡ Á¸ÀçÇÏ´Â ÆÄÀÏÀÇ ¿ø·¡ À̸§.

$_FILES['userfile']['type']
ºê¶ó¿ìÀú°¡ ÀÌ Á¤º¸¸¦ Á¦°øÇÒ °æ¿ì¿¡, ÆÄÀÏÀÇ mime Çü½Ä. ¿¹¸¦ µé¸é "image/gif".

$_FILES['userfile']['size']
¾÷·ÎµåµÈ ÆÄÀÏÀÇ ¹ÙÀÌÆ®·Î Ç¥ÇöÇÑ Å©±â.

$_FILES['userfile']['tmp_name']
¼­¹ö¿¡ ÀúÀåµÈ ¾÷·ÎµåµÈ ÆÄÀÏÀÇ Àӽà ÆÄÀÏ À̸§.

$_FILES['userfile']['error']
ÆÄÀÏ ¾÷·Îµå¿¡ °ü·ÃÇÑ ¿¡·¯ ÄÚµå. ['error']´Â PHP 4.2.0¿¡¼­ Ãß°¡µÇ¾ú½À´Ï´Ù.

Âü°í: PHP 4.1.0 ÀÌÀü ¹öÀü¿¡¼­´Â $HTTP_POST_FILESÀ̰í, $_FILES¿Í °°Àº ÀÚµ¿ Àü¿ª º¯¼ö´Â Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. PHP 3´Â $HTTP_POST_FILES¸¦ Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.

php.ini¿¡¼­ register_globals°¡ onÀ϶§, º¯¼ö°¡ Ãß°¡·Î »ç¿ë °¡´ÉÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, $userfile_nameÀº $_FILES['userfile']['name']°ú µ¿ÀÏÇϰí, $userfile_typeÀº $_FILES['userfile']['type']°ú µ¿ÀÏÇÕ´Ï´Ù. PHP 4.2.0ºÎÅÍ register_globalsÀÇ ±âº»°ªÀÌ offÀÓ¿¡ ÁÖÀÇÇϽʽÿÀ. ÀÌ Áö½Ã¾î¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â ¹æ¹ýÀ» ±ÇÀåÇÕ´Ï´Ù.

php.ini¿¡¼­ upload_tmp_dirÀ» ÀÌ¿ëÇÏ¿© ´Ù¸¥ À§Ä¡¸¦ ÁöÁ¤ÇÏÁö ¾Ê´Â ÇÑ, ÆÄÀÏÀº ¼­¹öÀÇ ±âº» Àӽà µð·ºÅ丮¿¡ ÀúÀåµË´Ï´Ù. ¼­¹öÀÇ ±âº» µð·ºÅ丮´Â PHP¸¦ ½ÇÇàÇϴ ȯ°æÀÇ È¯°æ º¯¼ö TMPDIRÀ» ÅëÇØ¼­ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. PHP ½ºÅ©¸³Æ® ³»ºÎ¿¡¼­ putenv()¸¦ ÅëÇØ¼­ ¼³Á¤ÇÏ´Â °ÍÀº ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù. ¹°·Ð, ÀÌ È¯°æ º¯¼ö´Â ¾÷·ÎµåµÈ ÆÄÀÏ¿¡ ´Ù¸¥ ÀÛ¾÷À» ÇÒ ¶§ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹ 20-2. ÆÄÀÏ ¾÷·Îµå È®ÀÎÇϱâ

Ãß°¡ Á¤º¸´Â is_uploaded_file()¿Í move_uploaded_file()¿¡ ´ëÇÑ ÇÔ¼ö Á¤º¸¸¦ Âü°íÇϽʽÿÀ. ´ÙÀ½ ¿¹Á¦´Â Æû¿¡¼­ Àü¼ÛµÈ ÆÄÀÏ ¾÷·Îµå¸¦ ó¸®ÇÕ´Ï´Ù.


Example #2 ÆÄÀÏ ¾÷·Îµå È®ÀÎÇϱâ

Ãß°¡ Á¤º¸´Â is_uploaded_file()¿Í move_uploaded_file()¿¡ ´ëÇÑ ÇÔ¼ö Á¤º¸¸¦ Âü°íÇϽʽÿÀ. ´ÙÀ½ ¿¹Á¦´Â Æû¿¡¼­ Àü¼ÛµÈ ÆÄÀÏ ¾÷·Îµå¸¦ ó¸®ÇÕ´Ï´Ù.
---------------------------------------------------------------------------------------------------------
<?php
// 4.1.0 ÀÌÀüÀÇ PHP¿¡¼­´Â, $_FILES ´ë½Å¿¡ $HTTP_POST_FILES¸¦
// »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
      echo "ÆÄÀÏÀÌ À¯È¿Çϰí, ¼º°øÀûÀ¸·Î ¾÷·Îµå µÇ¾ú½À´Ï´Ù.\n";
} else {
      print "ÆÄÀÏ ¾÷·Îµå °ø°ÝÀÇ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù!\n";
}

echo 'ÀÚ¼¼ÇÑ µð¹ö±ë Á¤º¸ÀÔ´Ï´Ù:';
print_r($_FILES);

print "</pre>";

?>
---------------------------------------------------------------------------------------------------------



¾÷·ÎµåµÈ ÆÄÀÏÀ» ¹Þ´Â PHP ½ºÅ©¸³Æ®´Â ¾÷·ÎµåµÈ ÆÄÀÏ·Î ¹«¾ùÀ» ÇÒ Áö °áÁ¤ÇÏ´Â ·ÎÁ÷À» Æ÷ÇÔÇϰí ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, $_FILES['userfile']['size'] º¯¼ö´Â ³Ê¹« À۰ųª Å« ÆÄÀÏÀ» ó¸®Çϴµ¥ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

$_FILES['userfile']['type'] º¯¼ö´Â Çü½Ä ±âÁØ¿¡ ¸ÂÁö ¾Ê´Â ÆÄÀÏÀ» ó¸®Çϴµ¥ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª À̰ÍÀº È®ÀÎ ÀÛ¾÷ Áß Çϳª°¡ µÇ¾î¾ß ÇÕ´Ï´Ù. ÀÌ °ªÀº ¿ÏÀüÈ÷ Ŭ¶óÀÌ¾ðÆ®¿¡¼­ ¸¸µé¾îÁö¸ç, PHP Ãø¿¡¼­ È®ÀÎÇÏÁö ¾Ê½À´Ï´Ù.

PHP 4.2.0ºÎÅÍ, $_FILES['userfile']['error']¸¦ ÀÌ¿ëÇÏ¿© ¿¡·¯ Äڵ忡 µû¶ó¼­ ó¸®ÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾î¶°ÇÑ ·ÎÁ÷ÀÌ°Ç °£¿¡, Àӽà µð·ºÅ丮·ÎºÎÅÍ ÆÄÀÏÀ» Áö¿ì°Å³ª ´Ù¸¥ °÷À¸·Î À̵¿ÇØ¾ß ÇÕ´Ï´Ù.
Æû¿¡¼­ ¾î¶°ÇÑ ÆÄÀϵµ ¼±ÅÃÇÏÁö ¾ÊÀ¸¸é,
PHP´Â $_FILES['userfile']['size']¸¦ 0À¸·Î, $_FILES['userfile']['tmp_name']Àº ¾ø½À´Ï´Ù.

¿äûÀÌ ³¡³¯ ¶§, À̵¿Çϰųª À̸§À» º¯°æÇÏÁö ¾ÊÀº Àӽà µð·ºÅ丮ÀÇ ÆÄÀÏÀº »èÁ¦µË´Ï´Ù.


Example #3 ÆÄÀÏ ¹è¿­ ¾÷·ÎµåÇϱâ

PHP´Â ÆÄÀÏ¿¡¼­µµ HTML ¹è¿­ ±â´ÉÀ» Áö¿øÇÕ´Ï´Ù.
---------------------------------------------------------------------------------------------------------
<form action="" method="post" enctype="multipart/form-data">
<p>±×¸²µé:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" name="Àü¼Û" />
</p>
</form>
---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------
<?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
     if ($error = UPLOAD_ERR_OK) {
          $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
          $name = $_FILES["pictures"]["name"][$key];
          move_uploaded_file($tmp_name, "data/$name");
     }
}
?>
---------------------------------------------------------------------------------------------------------



apc.rfc1867¿¡ µû¶ó¼­ ÆÄÀÏ ¾÷·Îµå ÁøÇà¹Ù¸¦ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.



Ãâó: php.net
ÃßõÃßõ : 472 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
3,033
 PHP Á¤±Ô½Ä Á¤¸®
3,032
 PHP Á¤±Ô½ÄÀ» Ȱ¿ëÇÑ ÅÂ±× ¹× ƯÁ¤ ¹®ÀÚ¿­ Á¦°Å ¹× ÃßÃâ ¹æ¹ý
3,031
 php Å©·Ñ¸µ ¶Ç´Â ÆÄ½Ì ÇÔ¼ö, Á¤±Ô½Ä ¸ðÀ½
3,030
 Á¦ÀÌÄõ¸® ±âº» ¸í·É¾î
3,029
 À¥ÆäÀÌÁö °¡·Î ¸ðµå¼¼·Î ¸ðµå ÀνÄÇϱâ
3,028
 ¸ð¹ÙÀÏ À¥ È­¸é °­Á¦ ȸÀü(°¡·Î¸ðµå °íÁ¤)
3,027
 [HTML5]¿¡¼­ frameset ´ëü ¹æ¹ý°ú iframe ¼Ó¼º
3,026
 HTML <Audio> »ç¿ë¹ý
3,025
 À©µµ¿ì10 ½Ã½ºÅÛÆÄÀÏ ¼Õ»ó (Ãʰ£´Ü ¿À·ù º¹±¸¹æ¹ý!!)
3,024
 PHP ÆÄÀÏ Á¸Àç ¿©ºÎ ÆÄ¾ÇÇϱâ(·ÎÄà ÆÄÀÏ Á¸Àç ¹× ¿ø°ÝÁö ÆÄÀÏ Á¸Àç)
3,023
 [CSS] ¹Ú½º ¼¼·Î °¡¿îµ¥ Áß¾Ó Á¤·Ä 6°¡Áö
3,022
 CSS Layout ¼öÆò & ¼öÁ÷ Á¤·Ä
3,021
 ¿©·¯ µµ¸ÞÀÎµé °£ ÄíŰ °øÀ¯Çϱâ
3,020
 ÅÂ±× »çÀÌ¿¡ ÀÖ´Â ÅØ½ºÆ®¸¦ ÃßÃâ
3,019
 [JQuery] textbox focus on offÀ϶§ ¼ýÀÚ ÄÞ¸¶ º¸¿©ÁÖ±â
3,018
 ÄíŰ »ý¼º,°¡Á®¿À±â,»èÁ¦
3,017
 »ç¿ëÀÚ ÇÔ¼ö ¸ðÀ½
3,016
 ¸¶¿ì½º,Űº¸µå Á¦ÇÑ ( ¿À¸¥ÂÊŬ¸¯,µå·¡±×,¿µ¿ª¼±Åõî..)
3,015
 [HTML5] <video> - DOMÀ¸·Î Á¦¾îÇϱâ
3,014
 HTML5 video ű׿¡¼­ ¿µ»ó Á¿ì¹ÝÀü
3,013
 PHP - ƯÁ¤ ÅÂ±× ¹× ¹®ÀÚ¿­ ÃßÃâ, Á¦°Å
3,012
 [PHP] define°ú definedÀÇ Â÷ÀÌ
3,011
 ¿ìŬ¸¯ ¿Ïº®Â÷´Ü ½ºÅ©¸³Æ®
3,010
 iframe ³ôÀÌ 100% ¸ÂÃß±â
3,009
 curl ÇÔ¼ö¸¦ ÀÌ¿ëÇÑ HTTP REFERER º¯°æ
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æÄ§
Copyright (C) musictrot All rights reserved.