[°ÁÂ] php+mysql °Ô½ÃÆÇ ¸¸µé±â #¼Ò-2
¾È³çÇϼ¼¿ä. µð¸Á½¬ÀÔ´Ï´Ù.
À̰ɷΠ°Á´ ³¡³ª´Â±º¿ä. ÂÁ. ¸¶Áö¸· °ÁÂÀÔ´Ï´Ù. À¯Á¾ÀÇ ¹Ì¸¦ °ÅµÑ ¼ö ÀÖ°Ô ³ª¸§´ë·Î ¿½ÉÈ÷ ŸÀÌÇÎ ÇϰڽÀ´Ï´Ù. ^^; (ÇÏÁö¸¸ °¨±â·Î ÀÎÇØ ¾îÁú ¾îÁú)
¼Ò. ÀÚ·á½Ç ±â´É ¹× ÀßÀßÇÑ ±â´É ºÙÀ̱â
b. ÀÚ·á½Ç ±â´É
»ç½Ç ¸Å¿ì ²¨·ÁÁö´Â ºÎºÐÀÔ´Ï´Ù. °Ô½ÃÆÇ¿¡ ÆÄÀÏ ¾÷·Îµå ±â´ÉÀ» ³ÖÀ½À¸·Î¼ ¿©·¯ ºÐÀÌ »ç¿ëÇÏ½Ç ¼¹öÀÇ º¸¾ÈÀº ÇÑ´Ü°è ³·¾ÆÁö°Ô µÇ°Åµç¿ä. ¿©Â÷ÇÏ¸é ¼ø½Ä°£¿¡ ÇѹÙÅÁ ³¸®°¡ ³¯ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ ±â´ÉÀ» ³Ö°í ¸»°í´Â ¿©·¯ ºÐÀÇ ¼±ÅÃÀÌÁö¸¸, ³ÖÀ¸½Å´Ù¸é ¿©·¯¸ð·Î ºÎÁ·ÇÑ ±â´ÉÀ» ÈξÀ °È½Ã۰í(±â´É=º¸¾È ¶ó´Â Àǹ̿¡¿ä) ´Ùµë¾î¼ ¾ÈÁ¤ÀûÀÎ ¼ºñ½º°¡ µÇµµ·Ï Çϼſä.
1. ÀÚ·á½Ç ±â´É¿¡ ÇÊ¿äÇÑ Á¤º¸µé º° °Å ¾ø½À´Ï´Ù. º¸¾È»ó Àú´Â ÀÚ·á½Ç ±â´É¿¡¼ ÆÄÀÏ À̸§°ú °æ·Î, ÆÄÀÏ »çÀÌÁî µîÀ» DB ¿¡ Á÷Á¢ ÀúÀå½Ã۱â·Î ÇßÁö¿ä. ÀÌ Á¤º¸°¡ ÇÊ¿äÇϰÚÁÒ.
ÀÌ°Í »ÓÀÔ´Ï´Ù. À̰ÍÀÇ attribute ´Â ¾î¶»°Ô µÉ±î¿ä?
filepath varchar(100), filename varchar(100), filesize int(4), |
¹Ù·Î À̴̰ϴÙ. filepath ¿¡ ¾÷·ÎµåÇÑ ÆÄÀÏÀÌ Á¸ÀçÇÒ µð·ºÅ丮 À̸§À», filename ¿¡ ¾÷·ÎµåÇÑ ÆÄÀÏÀÇ À̸§À», filesize ¿¡´Â ¾÷·ÎµåÇÑ ÆÄÀÏÀÇ ¿ë·®À» ÀúÀåÇÕ´Ï´Ù.
±×·¸´Ù¸é ÀÏ´Ü ±Û ¾µ ¶§ ÆÄÀÏ ¾÷·Îµå ÀÔ·Â ÆûÀ» ¸¸µé¾îº¼±î¿ä?
? /*-------------------------- filename : fill.php3 --------------------------*/ require "function.php3";
error_board();
echo (" // Àüü ȸé Ãâ·Â
<html>
<head> <title>±Û ÀÔ·Â</title> </head>
<body> <center> ±¤°í ¹× ¿å¼³ ±ÛÀº ¾ðÁ¦³ª ¹ß°ßµÇ´Â ´ë·Î »èÁ¦µË´Ï´Ù. ^^<p>
<form method="post" action="run.php3" enctype="multipart/form-data"> <input type="hidden" name="board" value="$board">
<input type="hidden" name="mode" value="write">
<table width="550" cellspacing="1" border="0" cellpadding="2"> <tr> <td align="left"><font size="2"><b> |<a href="list.php3?board=$board&page=$nowpage"> °Ô½Ã¹° ¸ñ·Ï</a> | </b></font></td> </tr> </table>
<table width="400" cellspacing="1" bgcolor="#A5A595" border="0" cellpadding="5"> <!-- ÀÛ¼ºÀÚ¸í --> <tr> <td width="30%" bgcolor="#A5A595" align="center"> <font size="2" color="white"><b>ÀÛ¼ºÀÚ¸í</b></font></td> <td width="70%" bgcolor="white" align="left"> <font color="white"> <input type="text" name="fil[name]" value="$mwbwd[name]" size="10" maxlength="10"> </font></td> </tr>
<!-- Email --> <tr> <td width="30%" bgcolor="#A5A595" align="center"> <font size="2" color="white"><b>E-mail</b></font></td> <td width="70%" bgcolor="white" align="left"> <font color="white"> <input type="text" name="fil[email]" value="$mwbwd[email]" size="20" maxlength="256"> </font></td> </tr>
<!-- Homepage --> <tr> <td width="30%" bgcolor="#A5A595" align="center"> <font size="2" color="white"><b>Homepage</b></font></td> <td width="70%" bgcolor="white" align="left"> <font color="white"> <input type="text" name="fil[homepage]" value="$mwbwd[homepage]" size="20" maxlength="256"> </font></td> </tr>
<!-- Password --> <tr> <td width="30%" bgcolor="#A5A595" align="center"> <font size="2" color="white"><b>ºñ¹Ð¹øÈ£</b></font></td> <td width="70%" bgcolor="white" align="left"> <font color="white"> <input type="password" name="fil[pw]" size="10" maxlength="20"> </font></td> </tr>
<!-- Subject --> <tr> <td width="30%" bgcolor="#A5A595" align="center"> <font size="2" color="white"><b>±Û Á¦¸ñ</b></font></td> <td width="70%" bgcolor="white" align="left"> <font color="white"> <input type="text" name="fil[title]" size="30" maxlength="256"> </font></td> </tr>
<!-- ÆÄÀÏ ¾÷·Îµå --> <tr> <td width="30%" bgcolor="#A5A595" align="center"> <font size="2" color="white"><b>ÆÄ ÀÏ</b></font></td> <td width="70%" bgcolor="white" align="left"> <font color="white"> <input type="file" name="userfile" size="20" maxlength="256"> </font></td> </tr>
<!-- Text --> <tr> <td width="30%" bgcolor="#C5C5B5" align="center"> <font size="2" color="white"><b>º» ¹®</b></font></td> <td width="70%" bgcolor="white" align="left"> <font color="white"> <textarea name="fil[text]" wrap="hard" rows="10" cols="36"></textarea> </font></td> </tr> </table> <input type="submit" value="ÀúÀåÇÏÀÚ"> <input type="reset" value="ÀçÀÛ¼º"> </form>
<table width="550" cellspacing="1" border="0" cellpadding="2"> <tr> <td align="right"><font size="2"><b> |<a href="list.php3?board=$board&page=$nowpage"> °Ô½Ã¹° ¸ñ·Ï</a> | </b></font></td> </tr> </table>
</center>
</body>
</html> "); // Àüü ȸé Ãâ·Â ¿Ï·á ?>
¿©±â¿¡´Ù°¡
<!-- ÆÄÀÏ ¾÷·Îµå --> <tr> <td width="30%" bgcolor="#A5A595" align="center"> <font size="2" color="white"><b>ÆÄ ÀÏ</b></font></td> <td width="70%" bgcolor="white" align="left"> <font color="white"> <input type="file" name="userfile" size="20" maxlength="256"> </font></td> </tr> |
ÀÌ°É ³Ö¾ú½À´Ï´Ù. Àß º¸½Ã¸é º¸ÀÌ½Ç µí. ^^;
ÀÌÁ¦ ¾÷·Îµå°¡ µÇ¾î ¼¹ö·Î ³Ñ¾î¿À´Â ÆÄÀÏÀÇ Á¤º¸¸¦ DB ¿¡ ÀúÀåÇÏ°í ÆÄÀÏ ÀÚü´Â ÆÄÀÏ·Î ÀúÀåÇÏ¸é µË´Ï´Ù.
¿©±â¼ ¹Ù·Î Àç¹ÌÀÖ´Â°Ô ³ª¿É´Ï´Ù. À§¿¡¼ ÆÄÀÏ ¾÷·Îµå °ü·Ã Á¤º¸°¡ userfile À̶ó´Â À̸§ÀÇ º¯¼ö·Î ³Ñ¾î°¡°Ô ÇßÁÒ? (<input> tag ¿¡¼¿ë) ÀÌ°É ÅëÇØ ¾÷·ÎµåµÈ ÆÄÀÏÀº $userfile_name °ú $userfile_size ¶ó´Â º¯¼ö¸¦ ÅëÇØ »õ·Î ž´Ï´Ù. $userfile_name ¿¡´Â ¾÷·ÎµåµÈ ÆÄÀÏÀÇ À̸§ÀÌ, $userfile_size ¿¡´Â ¾÷·ÎµåµÈ ÆÄÀÏÀÇ ¿ë·®ÀÌ. ¿À¿À¿À. ÆíÇÏÁÒ? ¸Å¿ì ÆíÇÕ´Ï´Ù.
ÀÌÁ¦ run.php3 ¿¡¼ ±Û ÀÔ·ÂÇÏ´Â ºÎºÐÀ» ¾à°£ ´Ùµë¾îº¸ÁÒ.
$result = mysql_query("INSERT INTO $board VALUES('', $ist[num], $ist[idx], '$fil[title]', '$fil[text]', 0, 0, 0, 0, 0, '', '', 0, '$fil[name]', '$passwd', '$fil[email]', '$fil[homepage]', $intime)", $connect); |
¿©±â¿¡¼ ¼¼¹øÂ° ÁÙ¿¡ ÀÖ´Â '', '', 0 ÀÌ ºÎºÐÀÌ ¹Ù·Î ÆÄÀÏ ¾÷·Îµå °ü·ÃÀÔ´Ï´Ù. À̰ÍÀ»
$result = mysql_query("INSERT INTO $board VALUES('', $ist[num], $ist[idx], '$fil[title]', '$fil[text]', 0, 0, 0, 0, 0, '', '$userfile_name', $userfile_size, '$fil[name]', '$passwd', '$fil[email]', '$fil[homepage]', $intime)", $connect); |
·Î °íĨ´Ï´Ù. ÀÌÁ¦ ÆÄÀÏÀÌ ÀúÀåµÉ °æ·Î¸íÀ» Á¤ÇÑ µÚ ³ÖÀ¸¸é µÇ°Ú±º¿ä.
±×·±µ¥ ¿Ö ÀúÀåµÉ µð·ºÅ丮¸¦ ÁöÁ¤ÇØÁÙ±î¿ä? ¿©·¯ »ç¶÷µéÀÌ ÆÄÀÏÀ» ¾÷·ÎµåÇÏ´Ùº¸¸é ÀÌ¹Ì ¾÷·ÎµåµÈ ÆÄÀϰú µ¿ÀÏÇÑ À̸§ÀÇ ÆÄÀÏÀÌ ¾÷·ÎµåµÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·² °æ¿ì ±âÁ¸ÀÇ ÆÄÀÏÀÌ »ç¶óÁú ¼ö ÀÖÁÒ. ±×·¡¼ °¢ °¢ÀÇ ÆÄÀÏÀ» Á¦ °¢ °¢ÀÇ µð·ºÅ丮¿¡ ³Ö¾îÁÖ´Â °Ì´Ï´Ù. ¹°·Ð ÀÌ·¯ÇÑ µð·ºÅ丮´Â °íÀ¯ÇÑ À̸§À» Áö³à¾ßÇϱ¸¿ä.
Àú´Â ¼³¸í¸¸ ÇÏ¸é µÇ´Ï(¿©·¯ºÐÀº ¼³¸íÀ» ÀÌÇØÇϰí ÀÀ¿ëÇÏ¸é µÇ±¸¿ä) °£´ÜÇÏ°Ô °æ·Î¸¦ ÀÔ·ÂµÈ ½Ã°¢À¸·Î ÇϰڽÀ´Ï´Ù.
$result = mysql_query("INSERT INTO $board VALUES('', $ist[num], $ist[idx], '$fil[title]', '$fil[text]', 0, 0, 0, 0, 0, '$intime', '$userfile_name', $userfile_size, '$fil[name]', '$passwd', '$fil[email]', '$fil[homepage]', $intime)", $connect); |
ÀÌÁ¦ ¾÷·ÎµåµÈ ÆÄÀÏÀ» ÇØ´ç µð·ºÅ丮¸¦ ¸¸µç µÚ ±×°÷¿¡ ÀúÀåÇÏ¸é µË´Ï´Ù.
±×Àü¿¡ ¾î´À µð·ºÅ丮¸¦ ÆÄÀÏ ÀúÀå Æú´õ·Î ¾µÁö Á¤ÇÒ Çʿ䰡 ÀÖ°Ú±º¿ä.
°£´ÜÇÏ°Ô upload/°Ô½ÃÆÇ¸í ¿¡ ÇϰڽÀ´Ï´Ù. ÇöÀç °Ô½ÃÆÇ ¸¸µé¸ç Å×½ºÆ®Çϰí ÀÖ´Â °Ô½ÃÆÇÀÇ À̸§(mysql ¿¡¼ Å×À̺í¸í)ÀÌ testboard ´Ï±î ÀÌ°Ç ÆÄÀÏÀ» ¿Ã¸®¸é upload/testboard ¿¡ ¿Ã¶ó°¡°ÚÁÒ? À̶§ Áß¿äÇÑ °ÍÀº testboard µð·ºÅ丮ÀÇ ÆÛ¹Ì¼Ç(permission)ÀÌ 777 À̾î¾ß ÇÕ´Ï´Ù. ¸¸¾à ¸®´ª½º³ª À¯´Ð½ºµîÀÇ ½Ã½ºÅÛ¿¡¼ root ±ÇÇÑÀÌ ÀÖ´Ù¸é µð·ºÅ丮ÀÇ access ±×·ìÀ» nobody ·Î ÇÑ µÚ 770 À¸·Î Çϼŵµ µÇ±¸¿ä. ÆÛ¹Ì¼ÇÀÌ ¹ºÁö Àß ¸ð¸£½Å´Ù±¸¿ä? ^^; ¾î¿ ¼ö ¾øÁÒ. ³Ñ¾î°¥ ¼ö ¹Û¿¡. ^^; (Èæ. ±×·¡¿ä. ¾îÁö·¯¿ö¼ »¡¸® ŸÀÌÇÎ ¿Ï·áÇϰíÇ ¸¶À½ÀÌ Ä¿¼ ±×·¡À¯ T_T)
mkdir upload mkdir upload/testboard chmod 777 upload/testboard |
¶ó°í ÇÏ½Ã¸é µË´Ï´Ù. ¹°·Ð run.php3 ÆÄÀÏÀÌ ÀÖ´Â °÷¿¡¼¿ä.
ÀÚ¾Æ. Áغñ°¡ µÆ½À´Ï´Ù. ÀÌÁ¦ run.php3 ¿¡¼ ÆÄÀÏÀÌ ¿Ã¶ó°¡°Ô ÇÏÁÒ.
if ($userfile_size > 0) { mkdir("upload/$board/$intime", 0755); exec("mv "$userfile" "upload/$board/$intime/$userfile_name""); chmod("upload/$board/$intime/$userfile_name", 0644); } |
»ó´çÈ÷ ½±½À´Ï´Ù. ÀÏ´Ü $userfile_size, Áï ÆÄÀÏÀÇ ¿ë·®ÀÌ 0 ¹ÙÀÌÆ®°¡ ¾Æ´Ò °æ¿ì ÇØ´ç ³»¿ëÀ» ½ÇÇàÇѴٴ°ÅÁÒ. 0 ¹ÙÀÌÆ®¸é? ÆÄÀÏÀ» ¿Ã¸°°Ô ¾Æ´Ï°Å³ª ±úÁø ÆÄÀÏÀ̹ǷΠ¾÷·Îµå¸¦ ÇÏÁö ¾Ê½À´Ï´Ù.
mkdir("upload/$board/$intime", 0755); |
À¸Èì. ÀÌ°Ç upload/$board ¿¡ ±ÛÀÌ ÀÛ¼ºµÈ ½Ã°¢ÀÇ µð·ºÅ丮¸¦ ¸¸µì´Ï´Ù. µð·ºÅ丮ÀÇ ÆÛ¹Ì¼ÇÀº 755(rwxr-xr-x). ¿©±â¼ mkdir ÇÔ¼ö´Â µð·ºÅ丮¸¦ ¸¸µå´Â ÇÔ¼öÁÒ.
±×·± µÚ
exec("mv "$userfile" "upload/$board/$intime/$userfile_name""); |
¾÷·ÎµåµÈ ÆÄÀÏÀ» ¹æ±Ý ¸¸µç µð·ºÅ丮¿¡ ¾÷·ÎµåµÈ ÆÄÀÏ À̸§À¸·Î À̵¿½Ãŵ´Ï´Ù(mv). À̶§ exec ÇÔ¼ö´Â ÇØ´ç ½Ã½ºÅÛ¿¡¼ÀÇ ½Ã½ºÅÛ ¸í·É¾î(?)¸¦ ½ÇÇà½ÃŰ´Â °ÍÀÔ´Ï´Ù.
ÀÚ ÀÌÁ¦ ¾÷·ÎµåµÈ ÆÄÀÏÀÇ ÆÛ¹Ì¼ÇÀ» 644 ·Î ¹Ù²ß´Ï´Ù. ¿Ö³Ä±¸¿ä? ÇØ´ç ÆÄÀÏÀ» Àб⸸ °¡´ÉÇÏ°í ½ÇÇàÀ» ÇÏÁö ¸øÇÏ°Ô ÇÏ·Á±¸¿ä. ±×°Ç ¶Ç ¿Ö³Ä±¸¿ä? ^^? º¸¾È¶§¹®ÀÔ´Ï´Ù. ¸¸¾à¿¡, ±×·¯´Ï±î ¸¶¾Æ¾Æ¾È¾à¿¡ ¾÷·ÎµåµÈ ÆÄÀÏÀÌ cgi È®ÀåÀÚÀÌ°í ¼¹ö´Â cgi È®ÀåÀÚ¸¦ Áö¿øÇϸç, ¾î¶°ÇÑ ¹æ¹ýÀ» ÅëÇØ cgi ÀÇ À§Ä¡¸¦ ¾Ë¾Æ³»¾î À̰ÍÀ» À¥ ºê¶ó¿ìÀú¸¦ ÅëÇØ ½ÇÇà½Ãų °æ¿ì? Çì. ²ûÂïÇϱº¿ä. ±×·¡¼ ÇØ´ç ÆÄÀÏÀÇ ±ÇÇÑ¿¡¼ ½ÇÇà ±ÇÇÑÀ» »¯¾î¹ö¸° °Ì´Ï´Ù.
À̰ɷΠ¾÷·Îµå´Â ³¡³µ½À´Ï´Ù. ÀÌÁ¦ ´Ù¿î·Îµå°¡ µÇ°Ô ÇØº¸ÁÒ. À̰ÍÀ» Çϱâ À§ÇØ ¿ì¸®´Â dn.php3 ¸¦ »õ·Î ¸¸µé¾î¾ß ÇÕ´Ï´Ù. ¾î¶»°Ô ¸¸µé±î¿ä? ±×°É »ý°¢Çϱâ Àü¿¡ ¾î¶»°Ô ÆÄÀÏÀ» ´Ù¿î·Îµå ½Ãų±î¿ä? ¼ø¼¸¦ Â¥º¸ÁÒ.
ÇØ´ç ÆÄÀÏÀÇ ±Û ¹øÈ£¸¦ ³Ñ°ÜÁÜ --> DB ¿¡¼ ÇØ´ç ±Û ¹øÈ£¸¦ ±Ù°Å·Î ÆÄÀÏ À̸§°ú À§Ä¡¸¦ ¾Ë¾Æ³¿ --> À¥ ºê¶ó¿ìÀú·Î ÇØ´ç ÆÄÀÏÀ» º¸³»ÁÜ
ÀÏ´Ü Ã¹ ¹øÂ° °ÍÀº
dn.php3?board=testboard&no=10 |
¹¹ ÀÌ·± ½ÄÀÌ¸é µÇ°ÚÁÒ. Á¤È®È÷ ÇÏÀÚ¸é
dn.php3?board=$board&no=$no |
À̰ڱ¸¿ä.
µÎ ¹øÂ° °úÁ¤Àº ¿ì¸®°¡ ¸¹ÀÌ ÇØ¿Ô´ø select ÇÔ¼ö¸¦ ÅëÇØ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
$result = mysql_query("SELECT * FROM $board WHERE no=$no", $connect);
$fileinfo = mysql_fetch_array($result); |
ÀÌ·¸°Ô Çϸé
$fileinfo[filepath] ¿¡´Â ÆÄÀÏ °æ·Î°¡, $fileinfo[filename] ¿¡´Â ÆÄÀÏ À̸§ÀÌ, $fileinfo[filesize] ¿¡´Â ÆÄÀÏ ¿ë·®ÀÌ |
ÀúÀåµË´Ï´Ù. ¿ì¸®°¡ ÇÊ¿äÇÑ °ÍÀº ¹°·Ð ¾ÕÀÇ µÎ °³ÀÔ´Ï´Ù. À̰ÍÀ» ÀÌÁ¦ À¥ ºê¶ó¿ìÀú·Î º¸³»ÁÖ¸é ³¡³³´Ï´Ù.
±×°ÍÀ» Çϱâ À§Çؼ´Â ÆÄÀÏ access ¸¦ ÇØ¾ß ÇÕ´Ï´Ù. fopen, fread °¡ ±×°ÍÀÌÁÒ.
ÀÏ´Ü fopen ÇÔ¼ö´Â ÆÄÀÏÀ» Àоî¿À´Â, Áï ¿©´Â ÇÔ¼öÀÔ´Ï´Ù. ÇØ´ç ÆÄÀÏÀ» Àоî¿Í ÀÌ°É fread ·Î Àо µÚ Ãâ·ÂÇØÁÖ¸é À¥ ºê¶ó¿ìÀú°¡ ÀÌ°É ¹Þ¾Æ³»¾î Ŭ¶óÀÌ¾ðÆ® Çϵ忡 ÀúÀåÇϴ°ÅÁÒ. ¾î...¾î·Æ³ª¿ä? ¼Ò½ººÎÅÍ º¸°Ú½À´Ï´Ù.
<? /*-------------------------- filename : dn.php3 --------------------------*/ $connect = mysql_connect("localhost","¾ÆÀ̵ð","ºñ¹ø"); mysql_select_db("»ç¿ëDB¸í",$connect);
$result = mysql_query("SELECT * FROM $board WHERE no=$no", $connect);
$ff = mysql_fetch_array($result);
$paths = "upload/$board/$ff[filluptime]/$ff[filename]";
if ($fp = fopen($paths, "r")) { Header("Content-type: application/octet-stream"); Header("Content-Disposition: attachment; filename=".$ff[filename]); Header("Content-Description: PHP Generated Data");
while ($fd=fread( $fp,filesize($paths))) { print($fd); } } fclose($fp); ?> |
´ëºÎºÐÀÇ °ÍÀº ÀÌ¹Ì ¿ì¸®°¡ ±¸ÇöÇØº» °ÍµéÀÔ´Ï´Ù. ¾ÈÇØº» °ÍÀº
if ($fp = fopen($paths, "r")) { Header("Content-type: file/unknown"); Header("Content-Disposition: attachment; filename=".$ff[filename]); Header("Content-Description: PHP Generated Data");
while ($fd=fread( $fp,filesize($paths]))) { print($fd); } } |
À̰űº¿ä. ÀÏ´Ü ÆÄÀÏÀ» ¿¾î¾ß°ÚÁÒ. fopen À¸·Î¿ä. À̶§ ÆÄÀÏÀ» Àб⠸ðµå·Î ¿±â À§ÇØ "r" À̶ó´Â °É ³ÖÀº°Ì´Ï´Ù. "w" ·Î ÇÏ¸é ¾²±â ¸ðµå·Î ¿±â ¶§¹®¿¡ ÀÌ ÆÄÀÏÀ» Áö¿ì°Å³ª ÇÒ ¼ö ÀÖÁÒ. ¾î·°Ç ´ÜÁö ÆÄÀÏÀ» Àоî¿À¸é µÇ±â¿¡ r ·Î ÇÕ´Ï´Ù.
ÀÌ·¸°Ô ¿Àº ÆÄÀÏ Á¤º¸¸¦ $fp ¿¡ ÀúÀåÇÕ´Ï´Ù. ¿Ö fp ³Ä±¸¿ä? C ¾ð¾î·Î ÆÄÀÏ ´Ù·ê ¶§ File Pointer ÀÇ ¾àÀÚ·Î fp ¸¦ ¸¹ÀÌ ¾²´Âµ¥ ±×°Ô ½À°üÀÌ µÇ¼¸®. ^^;
ÀÚ¾Æ. ÆÄÀÏÀÏ ¿¾úÀ¸´Ï ÆÄÀÏÀ» ´Ù¿î·Îµå ½Ãų Á¤º¸¸¦ Ŭ¶óÀ̾ðÆ®, Áï À¥ ºê¶ó¿ìÀú¿¡°Ô º¸³»Áà¾ß ÇÕ´Ï´Ù.
Çì´õ Á¤º¸¸¦ ¹¹°¡ ÇÑ´Ù°í ÇßÁÒ? ¿¹ÀÌ Header ÇÔ¼öÁÒ.
Header("Content-type: file/unknown"); Header("Content-Disposition: attachment; filename=".$ff[filename]); Header("Content-Description: PHP Generated Data"); |
À̴̰ϴÙ. ¿©±â¼ Áß¿äÇÑ °Ç
Header("Content-type: file/unknown"); |
À̰ÅÁÒ. À̰ÍÀÇ ÆÄÀÏ Å¸ÀÔÀ» gif ¶ó´ø°¡ ¹¹ ±×·± ½ÄÀ¸·Î Çß°í, ±× ŸÀÔÀ» À¥ ºê¶ó¿ìÀú°¡ ÀÚüÀûÀ¸·Î ¿ ¼ö Àִ ŸÀÔÀ̶ó¸é Çϵ忡 ÀúÀåÇÏ·Á ÇÏÁö ¾Ê°í ÀÏ´Ü À¥ ºê¶ó¿ìÀú°¡ ó¸®ÇÏ·Á ÇÕ´Ï´Ù. °ñÄ¡ ¾ÆÇÁÁÒ. ±×·¡¼ ÇØ´ç ÆÄÀÏÀÌ ¾î¶² ŸÀÔÀÎÁö ³ªµµ ¸ô¶ó! ¶ó°í ÇØÁÖ±â À§ÇØ file/unknown À̶ó°í ÇѰŶø´Ï´Ù.
±× ¾Æ·¡ ¾Æ·¡´Â ¹¹ ±×´ÙÁö Áß¿äÇÏÁø ¾Ê±¸¿ä. Á¤¸» Áß¿äÇÑ °Ç
while ($fd=fread( $fp,filesize($paths]))) { print($fd); } |
À̳ðÀÌÁÒ. fread ÇÔ¼ö·Î ÇØ´ç ÆÄÀÏÀÇ ³»¿ëÀ» Àоî¿Í(°¡Á®¿Í¼) fd ¿¡ ÀúÀåÇϰí ȸ鿡 »Ñ·ÁÁÖ´Â °Ì´Ï´Ù. ÀÌ°É ÆÄÀÏÀ» ´Ù ÀÐÀ» ¶§±îÁö ¹«ÇÑ ¹Ýº¹½Ã۴°ÅÁÒ.
¾î°
while ($view=mysql_fetch_array($result)) { } |
À̰Ͱú ¸ð¾çÀÌ ºñ½ÁÇÏÁÒ? ^^;
ÀÚ. ÀÌ·¸°Ô Àоî¿À°í »Ñ·ÁÁÖ°í¸¦ ¿Ï·áÇßÀ¸¸é ÆÄÀÏ ¿Àº °ÍÀ» ´Ý¾ÆÁà¾ß ÇÕ´Ï´Ù. ¹Ýµå½Ã¿ä. ±×·¸Áö ¾ÊÀ¸¸é? ¹«½¼ ÀÏÀÌ ÀϾÁö. ^^;
§. ´Ý¾Ò½À´Ï´Ù. :]
À¸Èì. ÀÌÁ¦ ÆÄÀÏÀÌ ÀÖÀ» °æ¿ì ÆÄÀÏ ¸íÀ» Ãâ·ÂÇÏ°í ±×°É Å¬¸¯ÇÏ¸é ´Ù¿î·Îµå µÇ°Ô ÇØº¸°Ú½À´Ï´Ù.
ÀÏ´Ü °£´ÜÇÏ°Ô ±Û º»¹® Àд »óÅÂ(view.php3) ¿¡¼ ÆÄÀÏ ´Ù¿î·Îµå°¡ °¡´ÉÇÏ°Ô ÇØº¸°Ú½À´Ï´Ù.
if ($view[filesize] > 0) { $view[contents] .= "<p align="right"> <a href="dn.php3?board=$board&no=$view[no]"> $view[filename]</a>"; } |
¿¡°Ô. °£´ÜÇÏÁÒ? ÀÌ°É È¸é Ãâ·ÂÇϱâ Àü¿¡ ³Ö¾îÁÖ¸é µË´Ï´Ù.
À§ ·çƾÀº ÇØ´ç ±ÛÀÇ ÆÄÀÏ ¿ë·® attribute ¸¦ °Ë»öÇØ¼ ¿ë·®ÀÌ 0 º¸´Ù Å©¸é ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù°í üũÇϰí, ±Û º»¹® ¸Ç µÚ¿¡´Ù°¡
<p align="right"> <a href="dn.php3?board=$board&no=$view[no]"> $view[filename]</a> |
ÀÌ°É ºÙÀÌ´Â °Ì´Ï´Ù. ÀÌ·¸°Ô ÇÏ¸é ±Û º»¹® ¸Ç ¾Æ·¡ ¿ìÃø¿¡ ¾÷·ÎµåµÈ ÆÄÀÏ À̸§ÀÌ Ãâ·ÂµÇ¾î ÀÖ°í ÀÌ°É Å¬¸¯ÇÏ¸é ´Ù¿î·Îµå°¡ µÇÁÒ. ^^;
ÀÌ ±â´ÉÀº ¾à°£ÀÇ ¹®Á¦°¡ ÀÖ½À´Ï´Ù. Å« ¿ë·®ÀÇ ÆÄÀÏÀ» ¾÷·ÎµåÇÒ °æ¿ì ½ÇÁ¦·Î ±ÛÀÌ DB ¿¡ ÀúÀåµÈ ½Ã°¢°ú ±Û ÀÔ·ÂÀÌ ¿Ï·áµÈ ½Ã°¢ÀÌ ´Þ¶óÁö°Ô µË´Ï´Ù. ±×°É ¹æÁöÇϱâ À§ÇØ ÆÄÀÏÀ» ¸Ç ³ªÁß¿¡ ¾÷·Îµå µÇ°Ô ÇØ³ùÁÒ. ±×·±µ¥ ¿ª½Ã ¹®Á¦°¡ »ý±é´Ï´Ù. ±ÛÀÌ ÀÔ·ÂµÇ¸é °Ô½Ã¹° ¸®½ºÆ®¿¡ ÇØ´ç ±ÛÀ» ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð ÆÄÀϵµ ´Ù¿î·Îµå µÇ°ÚÁÒ. ±×·±µ¥ ¸¸ÀÏ ÆÄÀÏ ¿ë·®ÀÌ Ä¿¼ ¾÷·Îµå µÇ°í ÀÖ´Â »óŶó¸é ±ÛÀº ÀоîÁöÁö¸¸ ¾÷·ÎµåµÈ ÀÚ·á´Â ´Ù¿î·Îµå°¡ ¾ÈµÉ °ÍÀÔ´Ï´Ù. À̰Š¾î¶»°Ô ÇØ°áÇϸé ÁÁÀ»±î¿ä? ^^ Á¦ À̹ø °ÁÂÀÇ ¸¶Áö¸· ¼÷Á¦ÀÔ´Ï´Ù. Àß Ç®¾îº¸¼¼¿ä. :]
¼ö°íµé Çϼ̾î¿ä. ^^/ ÀÌÁ¦ °ÁÂÀÇ ÈıâÀÎ '³â-0' ÀÌ ³²¾Ò±º¿ä. ^^; (¾î°¨ ÀÌ»óÇÏÁÒ?)
---------------------------- ÇÔ²²Çϸé Áñ°Å¿î »çÀÌÆ®µé (-_-; ±¤°íÀÓ -_-;) http://game.creple.com/delthia http://creple.com http://coco.st ----------------------------
- ?! µð¸Á½¬
|