°­ÁÂ

HOME > °­ÁÂ >
°­ÁÂ| ¸®´ª½º ¹× ¿ÀǼҽº¿¡ °ü·ÃµÈ °­Á¸¦ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
 
¼Ò. ÀÚ·á½Ç ±â´É ¹× ÀßÀßÇÑ ±â´É ºÙÀ̱â -2 ÀÚ·á½Ç ±â´É
Á¶È¸ : 2,755  


[°­ÁÂ] 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)) {
}

À̰Ͱú ¸ð¾çÀÌ ºñ½ÁÇÏÁÒ? ^^;

ÀÚ. ÀÌ·¸°Ô Àоî¿À°í »Ñ·ÁÁÖ°í¸¦ ¿Ï·áÇßÀ¸¸é ÆÄÀÏ ¿­Àº °ÍÀ» ´Ý¾ÆÁà¾ß ÇÕ´Ï´Ù. ¹Ýµå½Ã¿ä.
±×·¸Áö ¾ÊÀ¸¸é? ¹«½¼ ÀÏÀÌ ÀϾÁö. ^^;

fclose($fp);

§. ´Ý¾Ò½À´Ï´Ù. :]

À¸Èì. ÀÌÁ¦ ÆÄÀÏÀÌ ÀÖÀ» °æ¿ì ÆÄÀÏ ¸íÀ» Ãâ·ÂÇÏ°í ±×°É Å¬¸¯ÇÏ¸é ´Ù¿î·Îµå µÇ°Ô ÇØº¸°Ú½À´Ï´Ù.

ÀÏ´Ü °£´ÜÇÏ°Ô ±Û º»¹® Àд »óÅÂ(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
----------------------------


- ?! µð¸Á½¬


[¿ø±Û¸µÅ©] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=592


ÀÌ ±ÛÀ» Æ®À§ÅÍ·Î º¸³»±â ÀÌ ±ÛÀ» ÆäÀ̽ººÏÀ¸·Î º¸³»±â ÀÌ ±ÛÀ» ¹ÌÅõµ¥ÀÌ·Î º¸³»±â

 
µð¸Á½¬
E-mail : dimanche@coco.st

Homepage : http://dimanche.coco.st