ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î


ÆÄÀÏ ¾÷·Îµå¿¡ ¾²´Â $ FILES
14³â Àü
POST ¹æ½Ä ¾÷·Îµå
PHP´Â RFC-1867 ȣȯ ºê¶ó¿ìÀú(³Ý½ºÄÉÀÌÇÁ ³×ºñ°ÔÀÌÅÍ 3 ÀÌ»ó, ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® ÀÎÅÍ³Ý ÀͽºÇ÷η¯ 3 ÀÌ»óÀ» Æ÷ÇÔ)·ÎºÎÅÍ ÆÄÀÏ ¾÷·Îµå¸¦ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ ±â´ÉÀº »ç¶÷µéÀÌ ÅؽºÆ®¿Í ¹ÙÀ̳ʸ® ÆÄÀÏÀ» µ¿½Ã¿¡ ¾÷·Îµå ÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù. PHPÀÇ ÀÎÁõ ¹× ÆÄÀÏ °ü¸® ÇÔ¼ö¸¦ ÀÌ¿ëÇؼ­, ¾÷·Îµå¸¦ ÇÒ ¼ö ÀÖ´Â »ç¶÷ ¹× ¾÷·ÎµåÇÑ ÆÄÀÏÀÇ Ã³¸®¸¦ ¿ÏÀüÈ÷ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.

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

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

ÆÄÀÏ ¾÷·Îµå È­¸éÀº ´ÙÀ½°ú °°Àº Ưº°ÇÑ ÆûÀ¸·Î ¸¸µé¾îÁý´Ï´Ù:

ex) ÆÄÀÏ ¾÷·Îµå Æû

<form enctype="multipart/form-data" action="_URL_" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
ÀÌ ÆÄÀÏÀ» Àü¼ÛÇÕ´Ï´Ù: <input name="userfile" type="file" />
<input type="submit" value="ÆÄÀÏ Àü¼Û" />
</form>





À§ ¿¹Á¦ÀÇ "_URL_"À» º¯°æÇÏ¿©, PHP ÆÄÀÏÀ» Áö½ÃÇϵµ·Ï ÇؾßÇÕ´Ï´Ù. MAX_FILE_SIZE È÷µç Çʵå´Â ÆÄÀÏ ÀÔ·Â ÇÊµå ¾Õ¿¡ À§Ä¡ÇØ¾ß Çϸç, ÃÖ´ë ÆÄÀÏÅ©±â(¹ÙÀÌÆ®·Î Áö½Ã)¸¦ °ªÀ¸·Î °¡Áý´Ï´Ù. ¶ÇÇÑ, ÆÄÀÏ ¾÷·Îµå ÆûÀº enctype="multipart/form-data"À» °¡Áö°í ÀÖ¾î¾ß Çϸç, ±×·¸Áö ¾ÊÀ¸¸é ÆÄÀÏ ¾÷·Îµå´Â ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù.


ÁÖÀÇ
MAX_FILE_SIZE´Â PHP°¡ È®ÀÎÇϱ⵵ ÇÏÁö¸¸, ºê¶ó¿ìÀú¿¡ ´ëÇÑ ±Ç°íÀÔ´Ï´Ù. ÀÌ °ªÀ» º¯°æÇÏ´Â°Ç ¸Å¿ì °£´ÜÇϱ⿡, Å©±â°¡ Å« ÆÄÀÏÀ» ¸·±â À§Çؼ­´Â ÀÌ ±â´É¿¡ ÀÇÁ¸Çؼ­´Â ¾ÈµË´Ï´Ù. ´ë½Å, ÃÖ´ë Å©±â¿¡ °üÇÑ PHP ¼³Á¤Àº ¼ÓÀÏ ¼ö ¾ø½À´Ï´Ù. ±×·¯³ª MAX_FILE_SIZE Æû º¯¼ö´Â »ç¿ëÀÚ°¡ ÆÄÀÏÀÌ ³Ê¹« Å©´Ù´Â °ÍÀ» ÆľÇÇϱâ À§Çؼ­ ½ÇÁ¦ Àü¼ÛÀ» ÇÏ´Â µ¿¾È ±â´Ù¸± Çʿ並 ¾ø¾ÖÁÝ´Ï´Ù.



¾÷·ÎµåÇÑ ÆÄÀÏÀ» Á¤ÀÇÇÏ´Â º¯¼ö´Â 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()¿¡ ´ëÇÑ ÇÔ¼ö Á¤º¸¸¦ Âü°íÇϽʽÿÀ. ´ÙÀ½ ¿¹Á¦´Â Æû¿¡¼­ Àü¼ÛµÈ ÆÄÀÏ ¾÷·Îµå¸¦ ó¸®ÇÕ´Ï´Ù.

<?php
// 4.1.0 ÀÌÀüÀÇ PHP¿¡¼­´Â, $_FILES ´ë½Å¿¡ $HTTP_POST_FILES¸¦
// »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . $_FILES['userfile']['name'];

print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print "ÆÄÀÏÀÌ Á¸ÀçÇÏ°í, ¼º°øÀûÀ¸·Î ¾÷·Îµå µÇ¾ú½À´Ï´Ù.";
print "Ãß°¡ µð¹ö±ë Á¤º¸ÀÔ´Ï´Ù:\n";
print_r($_FILES);
} else {
print "ÆÄÀÏ ¾÷·Îµå °ø°ÝÀÇ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù! µð¹ö±ë Á¤º¸ÀÔ´Ï´Ù:\n";
print_r($_FILES);
}
print "</pre>";

?>




¾÷·ÎµåµÈ ÆÄÀÏÀ» ¹Þ´Â PHP ½ºÅ©¸³Æ®´Â ¾÷·ÎµåµÈ ÆÄÀÏ·Î ¹«¾ùÀ» ÇÒ Áö °áÁ¤ÇÏ´Â ·ÎÁ÷À» Æ÷ÇÔÇÏ°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, $_FILES['userfile']['size'] º¯¼ö´Â ³Ê¹« À۰ųª Å« ÆÄÀÏÀ» ó¸®Çϴµ¥ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. $_FILES['userfile']['type'] º¯¼ö´Â Çü½Ä ±âÁØ¿¡ ¸ÂÁö ¾Ê´Â ÆÄÀÏÀ» ó¸®Çϴµ¥ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. PHP 4.2.0ºÎÅÍ, $_FILES['userfile']['error']¸¦ ÀÌ¿ëÇÏ¿© ¿¡·¯ Äڵ忡 µû¶ó¼­ ó¸®ÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾î¶°ÇÑ ·ÎÁ÷ÀÌ°Ç °£¿¡, Àӽà µð·ºÅ丮·ÎºÎÅÍ ÆÄÀÏÀ» Áö¿ì°Å³ª ´Ù¸¥ °÷À¸·Î À̵¿ÇØ¾ß ÇÕ´Ï´Ù.

Æû¿¡¼­ ¾î¶°ÇÑ ÆÄÀϵµ ¼±ÅÃÇÏÁö ¾ÊÀ¸¸é, PHP´Â $_FILES['userfile']['size']¸¦ 0À¸·Î, $_FILES['userfile']['tmp_name']À» noneÀ¸·Î ¹ÝȯÇÕ´Ï´Ù.

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


¿¡·¯ ¸Þ¼¼Áö ¼³¸í

PHP 4.2.0ºÎÅÍ, PHP´Â ÆÄÀÏ ¹è¿­¿¡ ÀûÀýÇÑ ¿¡·¯ Äڵ带 ¹ÝȯÇÕ´Ï´Ù. ¿¡·¯ ÄÚµå´Â PHP·Î ÆÄÀÏÀ» ¾÷·Îµå ÇßÀ»¶§ ¸¸µé¾îÁö´Â ÆÄÀÏ ¹è¿­ÀÇ ['error'] ¼¼±×¸ÕÆ®¿¡¼­ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, $_FILES['userfile']['error']¿¡¼­ È®ÀÎÇÒ ¼ö ÀÖÀ»°Ì´Ï´Ù.



UPLOAD_ERR_OK
°ª: 0; ¿À·ù ¾øÀÌ ÆÄÀÏ ¾÷·Îµå°¡ ¼º°øÇß½À´Ï´Ù.

UPLOAD_ERR_INI_SIZE  
°ª: 1; ¾÷·ÎµåÇÑ ÆÄÀÏÀÌ php.ini upload_max_filesize Áö½Ã¾îº¸´Ù Å®´Ï´Ù.

UPLOAD_ERR_FORM_SIZE
°ª: 2; ¾÷·ÎµåÇÑ ÆÄÀÏÀÌ HTML Æû¿¡¼­ ÁöÁ¤ÇÑ MAX_FILE_SIZE Áö½Ã¾îº¸´Ù Å®´Ï´Ù.

UPLOAD_ERR_PARTIAL
°ª: 3; ÆÄÀÏÀÌ ÀϺκи¸ Àü¼ÛµÇ¾ú½À´Ï´Ù.

UPLOAD_ERR_NO_FILE
°ª: 4; ÆÄÀÏÀÌ Àü¼ÛµÇÁö ¾Ê¾Ò½À´Ï´Ù.


Âü°í: À̵éÀº PHP 4.3.0¿¡¼­ PHP »ó¼ö°¡ µÇ¾ú½À´Ï´Ù.
ÃßõÃßõ : 293 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,891
ÀÔ·Â Çʵ忡¼­ ƯÁ¤´Ü¾î(¿¹:#err)°¡ Æ÷ÇԵǾúÀ» ¶§ ½Ç½Ã°£ °¨Áö ¹× °æ°íâ ¶ç¿ì±â
2,890
µ¥ÀÌÅͺ£À̽º ÃÖÀûÈ­¿Í Äõ¸® È¿À²¼ºÀ» ³ôÀÌ °Ë»ö ¼º´ÉÀ» °³¼±ÇÏ´Â ¹æ¹ý
2,889
°£´ÜÇÑ °Ô½ÃÆÇ ¸¸µé±â
2,888
PHPÀÇ php.ini ÆÄÀÏ¿¡¼­ ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÁÖ¿ä Ç׸ñµéÀ» Ä«Å×°í¸®º°·Î Á¤¸®
2,887
À¯Æ©ºê µ¿¿µ»óÀÇ ½æ³×ÀÏ À̹ÌÁö¸¦ üũÇÏ¿© À¯È¿ÇÑ ¿µ»óÀ̾ƴҶ§ ¿¬°áµÈ üũ¹Ú½º¸¦ ÀÚµ¿À¸·Î üũ
2,886
À̹ÌÁö URLÀÌ À¯È¿ÇÏÁö ¾ÊÀ» ¶§, ÇØ´ç À̹ÌÁö¿Í ¿¬°áµÈ üũ¹Ú½º¸¦ ÀÚµ¿À¸·Î üũ
2,885
HTTPS·Î Á¢¼ÓÇÑ »ç¿ëÀÚ¸¦ °­Á¦·Î HTTP·Î ¸®µð·º¼Ç ÇÏ·Á¸é
2,884
PHP¿¡¼­ MP3 ÆÄÀÏÀ» Á÷Á¢ ÀÐ°í ½ºÆ®¸®¹Ö Çϱâ
2,883
ÇöÀç ÆäÀÌÁö°¡ location.reload()¿¡ ÀÇÇØ »õ·Î°íħµÇ¾ú´ÂÁö
2,882
ÅؽºÆ® ÆÄÀÏÀ» Àаí, °¢ ÁÙÀÇ ³¡¿¡¼­ 6±ÛÀÚ¸¦ »èÁ¦ÇÑ ÈÄ, °á°ú¸¦ »õ·Î¿î ÆÄÀÏ¿¡ ÀúÀåÇÕ´Ï´Ù.
2,881
cURLÀ» »ç¿ëÇÏ¿© ¸®´ÙÀÌ·ºÆ®¸¦ µû¶ó°¡ ÃÖÁ¾ URL °¡Á®¿À±â
2,880
[PHP] $_SERVER ȯ°æº¯¼ö
2,879
10Áø¼ö <-> 16Áø¼ö º¯È¯±â PHP¼Ò½º
2,878
ÅؽºÆ®¿¡ Á÷Á¢ ±×¶óµ¥ÀÌ¼Ç »ö»óÀ» Àû¿ëÇÏ·Á¸é?
2,877
CSS¸¦ »ç¿ëÇÏ¿© ¿ä¼ÒÀÇ ³»¿ë¹°¿¡ µû¶ó width¸¦ Á¶Á¤ÇÏ´Â ¹æ¹ý
2,876
À¥¼­¹ö ip È®ÀÎ
2,875
À¥È£½ºÆÃÀÇ Àý´ë°æ·Î¸¦ È®ÀÎ
2,874
input ÀÔ·Â ÇÊµå ¾ÕµÚ °ø¹é ½Ç½Ã°£ Á¦°Å
2,873
Placeholder Æ÷Ä¿½º½Ã °¨Ãß±â
2,872
MySQL Áߺ¹µÈ µ¥ÀÌÅ͸¦ »èÁ¦
2,871
MySQL Áߺ¹ µ¥ÀÌÅÍ È®ÀÎ
2,870
sessionStorage.getItem ¿Í sessionStorage.setItem
2,869
Á¦ÀÌÄõ¸® ·£´ýÀ¸·Î ¹è°æ»ö º¯°æ
2,868
preg match¿¡ °üÇÑ Á¤±Ô½Ä
2,867
Stream an audio file with MediaPlayer ¿Àµð¿À ÆÄÀÏ ½ºÆ®¸®¹Ö Çϱâ
2,866
Audio Streaming PHP Code
2,865
PHP $ SERVER ȯ°æ º¯¼ö Á¤¸®
2,864
Vimeo (ºñ¸Þ¿À) API ¸¦ »ç¿ëÇÏ¿© Ç÷¹À̾î ÄÁÆ®·ÑÇϱâ
2,863
iframe »ç¿ë½Ã ÇÏ´Ü¿¡ ¹ß»ýÇÏ´Â °ø¹é Á¦°Å¹æ¹ý
2,862
¾ÆÀÌÇÁ·¹ÀÓ(iframe) Àüüȭ¸é °¡´ÉÇÏ°Ô Çϱâ
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.