¼¹ö¿¡¼ÀÇ µ¥ÀÌÅÍ Ã³¸®Çϱâ¾×Ƽºê½ºÄù¾î°¡ Àû¿ëµÈ °Ô½ÃÆÇ¿¡¼ ÀÔ·ÂµÈ µ¥ÀÌÅÍÀÇ Ã³¸® ¹æ¹ýÀº ÀÏ¹Ý °Ô½ÃÆÇÀÇ Ã³¸® ¹æ¹ý°ú À¯»çÇÕ´Ï´Ù. ´Ù¸¸ ¾×Ƽºê½ºÄù¾î¿¡¼ ÀÛ¼ºµÈ ³»¿ë¸¸ ´Ù¸£°Ô 󸮵˴ϴÙ.
|
1 |
µ¥ÀÌÅ͸¦ Á÷Á¢ DB(¶Ç´Â ÆÄÀÏ)¿¡ ÀúÀåÇÏ´Â ¹æ¹ý |
2 |
MIME µðÄÚ´õ¸¦ ÅëÇØ µ¥ÀÌÅ͸¦ ÆÄÀϰú º»¹®À¸·Î ºÐ¸®ÇÏ¿© ÀúÀåÇÏ´Â ¹æ¹ý |
°Ô½ÃÆÇÀÇ °æ¿ì ÀÛ¼ºµÈ ºÐ¹®Àº ÅØ½ºÆ®À̹ǷΠ´Ü¼øÈ÷ HTML ű׸¦ ºÐ¸®Çϰųª Ư¼ö ±âÈ£ µîÀ» ó¸®ÇÏ¿© DB¿¡ ÀúÀåÇÕ´Ï´Ù. ¸¸¾à ÷ºÎ ÆÄÀÏÀÌ ÀÖÀ» °æ¿ì À̸¦ DB¿¡ ³ÖÀ» ¼öµµ ÀÖ°í, º°µµÀÇ ¾÷·Îµå(Upload) µð·ºÅ丮¿¡ ¸¶·ÃµÈ ±ÔÄ¢¿¡ µû¶ó ÀúÀåÇÏ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
¾×Ƽºê½ºÄù¾î¿¡¼ ¸¸µç µ¥ÀÌÅÍ´Â ÅØ½ºÆ®, HTML, MIME ÇüÅ·Π³ª´ ¼ö ÀÖÀ¸¸ç, ±× Áß MIME ÇüŰ¡ ¾×Ƽºê½ºÄù¾îÀÇ ¸ðµç ±â´ÉÀ» Æ÷ÇÔÇϰí ÀÖ´Â °æ¿ì¶ó ÇÒ ¼ö ÀÖ½À´Ï´Ù. MIME ÇüÅ´ µ¥ÀÌÅÍ¿¡¼ ¿©·¯ °¡Áö ÇüÅÂÀÇ ÆÄÀÏ, °³Ã¼, Ç÷¡½Ã ÆÄÀϰú º»¹® HTMLÀ» °°ÀÌ Àü¼Û¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ÀÌ¿Í °°ÀÌ MIME ÇüÅÂÀÇ µ¥ÀÌÅ͸¦ ¹Þ¾Æ¿Ã °æ¿ì ¾×Ƽºê½ºÄù¾î°¡ Àû¿ëµÇÁö ¾ÊÀº °Ô½ÃÆÇ¿¡¼´Â ó¸®ÇÒ ¼ö ¾ø½À´Ï´Ù.
¸¸¾à MIME ÇüÅÂÀÇ µ¥ÀÌÅ͸¦ DB¿¡ ÀúÀåÇÑ´Ù¸é, Internet ExplorerÀÇ °æ¿ì MHT ÆÄÀÏÀ» Áö¿øÇÏÁö¸¸, ¸ðµç µ¥ÀÌÅÍÀÇ ³»¿ëÀ» Internet Explorer¿¡ Àü¼ÛÇÒ ¶§ HTTP Header¿¡ MIME Message ŸÀÔÀ¸·Î ÁÙ °æ¿ì µðÄÚµù(Decoding)ÇÏ¿© Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ƯÁ¤ÇÑ Æ÷¸Ë(Format)ÀÇ ÇüÅ·Π°Ô½Ã¹°À» Ç¥ÇöÇϱâ´Â ¾î·Æ½À´Ï´Ù. ¶ÇÇÑ DB¿¡¼ º»¹®¿¡ ´ëÇÏ¿© °Ë»öÇÒ ¼ö ÀÖ´Â ¹æ¹ýµµ ¾ø½À´Ï´Ù. ¸¸¾à DB¸¦ MY-SQLÀ» »ç¿ëÇÏ´Â °æ¿ì¶ó¸é Full Text Search¸¦ ½ÇÇàÇϰųª, WhereÀýÀÇ like ±¸¹®À¸·Î °Ë»öÇϱⰡ ¾î·Æ±â ¶§¹®ÀÔ´Ï´Ù. µû¶ó¼ MIME µ¥ÀÌÅ͸¦ Á÷Á¢ DB¿¡ ÀúÀåÇϰųª, ÆÄÀÏ ÇüÅ·Πº¸°üÇÏ´Â ¹æ¹ýÀº ½Ã½ºÅÛÀÇ È¿À²À» ÁÁÁö ¾Ê°Ô ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.
MIME µ¥ÀÌÅ͸¦ HTML º»¹®°ú Æ÷ÇÔµÈ ÆÄÀÏÀ» ºÐ¸®ÇÏ¿© ÀúÀåÇÏ´Â ¹æ½ÄÀÌ °¡Àå ÀϹÝÀûÀ̸ç, È¿À²ÀûÀÔ´Ï´Ù. HTMLÀÇ °æ¿ìµµ DB¿¡ ÀúÀåÇÑ ÈÄ Æ÷ÇÔµÈ ÆÄÀÏÀº º°µµÀÇ µð·ºÅ丮¿¡ ÀúÀåÇÏ´Â ¹æ¹ýÀ» ±ÇÀåÇÕ´Ï´Ù. (¸¸¾à Æ÷ÇÔµÈ ÆÄÀÏÀ» DB¿¡ ³ÖÀ» °æ¿ì ¸î°¡Áö DBÀÇ ÇüÅ¿¡ µû¶ó ¿©·¯ °¡Áö ÀÛ¾÷À» ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.)
¾×Ƽºê½ºÄù¾î¿¡¼ MIME Encoded Data¸¦ Internet Explorer·Î Àü´Þ¹Þ¾Æ¼ À̸¦ Form Data·Î À¥ ¼¹ö¿¡ Àü´ÞÇϸé, À¥ ¼¹ö´Â ¼¹ö»çÀÌµå ½ºÅ©¸³Æ®(Server-Side Script)¿¡¼ ºÐ¸®ÇÏ´Â ÀÛ¾÷À» ÅëÇØ¼ HTML°ú Æ÷ÇÔµÈ ÆÄÀÏ·Î ºÐ¸®ÇÕ´Ï´Ù. HTMLÀº DB¿¡ ÀúÀåµÇ°í, Æ÷ÇÔµÈ ÆÄÀÏÀº File System¿¡ ÀúÀåµË´Ï´Ù.
|
´ÙÀ½Àº °Ô½ÃÆÇ ±Û¾²±â ¼Ò½ºÀÇ ÀϺκÐÀÔ´Ï´Ù.
uploadPath = BBS_UPLOAD_PATH & msgno & "/" ' ÷ºÎ ÆÄÀÏÀ» ÀúÀåÇÒ °æ·Î¸í uploadUrl = BBS_UPLOAD_URL & msgno & "/" ' ÷ºÎ ÆÄÀÏÀ» ÀÐ¾î µéÀÏ URL
Set namoMime = Server.CreateObject("NamoMIME7.MIMEObject") ' NamoMIME À¯Æ¿¸®Æ¼ÀÎ COM Class¸¦ ºÒ·¯¿È Set fso = Server.CreateObject("Scripting.FileSystemObject") ' ÆÄÀÏ ½Ã½ºÅÛ¿ë ¿ÀºêÁ§Æ®¸¦ »ý¼º
On Error Resume Next ' ¿¡·¯ ó¸® fso.CreateFolder uploadPath ' Æú´õ »ý¼º Err.Clear
namoMime.SetBaseDecodeUrl uploadPath ' ÆÄÀϰæ·Î º¯È¯À» À§ÇØ ·ÎÄà ¾÷·Îµå°æ·Î¸¦ ÁöÁ¤ÇÕ´Ï´Ù. namoMime.Decode msgbody, uploadPath ' ¾÷·Îµå °æ·Î¿¡ ÀÖ´Â ÆÄÀϵéÀ» µðÄÚµåÇÔ Set ts = fso.OpenTextFile(uploadPath & "noname.htm", 1) converted = ts.ReadAll ts.Close fso.DeleteFile uploadPath & "noname.htm" ' µðÄÚµùÇÑ ¸Þ¼¼Áö ÆÄÀÏÀ» Áö¿ò.
' ÷ºÎ ÆÄÀÏÀÇ °æ·Î¸íÀ» Á¢±Ù °¡´ÉÇÑ URL·Î ¹Ù²Ù¾îÁÝ´Ï´Ù. Set folder = fso.GetFolder(uploadPath) Set files = folder.Files For each f in files converted = Replace(converted, f.name, uploadUrl & f.name) Next
' HTMLÀ» Àд´Ù. (ÀоîµéÀÎ ½ºÆ®¸µÀÇ ³¡¿¡´Â EOF°¡ ÀÖÀ½) converted = AddSlashes(Left(converted, Len(converted) - 1)) |
Àº ÇöÀç ÀúÀåÇÒ °Ô½Ã¹°ÀÇ ÀÏ·Ã ¹øÈ£ÀÔ´Ï´Ù. °Ô½ÃÆÇ¿¡¼´Â ÀÌ ÀÏ·Ã ¹øÈ£·Î ±¸ºÐÇÏ¿© °Ô½Ã¹°ÀÌ ÀúÀåµÉ µð·ºÅ丮¸¦ ƯÁ¤ µð·ºÅ丮 ¾Æ·¡¿¡ ¸¸µé °Ô µË´Ï´Ù. ±×¸®°í ÅØ½ºÆ®¿¡ Æ÷ÇÔµÈ ÆÄÀÏÀ» ÀÌ µð·ºÅ丮¿¡ ÀúÀåÇϰí, HTML º»¹®¿¡ Ç¥½ÃµÈ ÆÄÀÏÀÇ ¸µÅ©¸¦ ÀúÀåÇÑ ¸µÅ©·Î º¯È¯ÇÕ´Ï´Ù. ±×·¯¹Ç·Î HTML ÆÄÀÏÀ» »ç¿ëÀÚ¿¡°Ô Àü¼ÛÇÏ¿©µµ º°µµÀÇ Ã³¸®°¡ ÇÊ¿ä¾øÀÌ Æ÷ÇÔµÈ ÆÄÀÏÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.
ASP¿¡¼´Â MIME µðÄÚµùÀ» À§ÇØ ³ª¸ð AcitveSaure ¿Í ÇÔ²² Á¦°øÇÏ´Â COM ÄÁÆ®·ÑÀÎ Namo MIME ObjectÀ» ÀÌ¿ëÇÕ´Ï´Ù. COM ÇüÅÂÀ̱⠶§¹®¿¡ MS°è¿ÀÇ °³¹ß µµ±¸¿Í ±× ¿Ü COMÀ» Áö¿øÇÏ´Â °³¹ßµµ±¸³ª ȯ°æ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Namo MIME ObjectÀÇ ProgID ´Â "NamoMIME7.MIMEObject"ÀÔ´Ï´Ù.
¸¸¾à Namo MIMEObjectÀÌ »ý¼ºµÇÁö ¾Ê´Â´Ù¸é, MMIEObject°¡ À©µµÁî¿¡ ¼³Ä¡µÇÁö ¾Ê¾Ò°Å³ª µî·ÏµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ìÀÔ´Ï´Ù. MIMEObject¸¦ µî·ÏÇÏ·Á¸é ActiveSquare ¸¦ ¼¹ö¿¡ ´Ù½Ã ¼³Ä¡ÇÏ¿© ÁֽʽÿÀ. VBScript (ASP)¿¡¼ COM ÄÁÆ®·ÑÀ» »ý¼ºÇÏ·Á¸é Server ¿ÀºêÁ§Æ®ÀÇ CreateObject¸¦ »ç¿ëÇÕ´Ï´Ù.
MIMEObject.Decode ¸Þ½îµå´Â ÁÖ¾îÁø MIME µ¥ÀÌÅ͸¦ ÁöÁ¤ÇÑ µð·ºÅ丮¿¡ ¸ðµÎ µðÄÚµùÇÏ¿© ÀúÀåÇÕ´Ï´Ù. (µðÄÚµù ÇÒ °Ô½Ã¹°ÀÇ °æ¿ì noname.htmÀ¸·Î ÀúÀåÇÕ´Ï´Ù.)
À» ÀÌ¿ëÇÑ µðÄÚµù ¼ø¼´Â ´ÙÀ½°ú °°½À´Ï´Ù.
º»¹®¿¡ ¸µÅ©ÇØ ³õÀº ÆÄÀÏÀº µðÄÚµù °úÁ¤¿¡¼ ƯÁ¤ µð·ºÅ丮·Î ÀúÀåÇÕ´Ï´Ù. µû¶ó¼ ÀÌ·¯ÇÑ ÆÄÀϵéÀ» À¥¿¡¼ º¸·Á¸é ÆÄÀÏÀÇ °æ·Î¸íÀ» Á¢±Ù °¡´ÉÇÑ URL·Î ¹Ù²Ù¾î¾ß ÇÕ´Ï´Ù.
FileSystemObjectÀÇ Folder ¿ÀºêÁ§Æ®¸¦ ÀÌ¿ëÇÏ¿© µðÄÚµù¿¡ »ç¿ëÇÑ Æú´õ¿¡ ÀÖ´Â ÆÄÀÏÀÇ ÄÝ·º¼ÇÀ» ¾ò½À´Ï´Ù. ÆÄÀÏ ÄÝ·º¼ÇÀÇ ÆÄÀÏ À̸§ÀÌ º»¹®¿¡ ÀÖÀ» °æ¿ì À̸¦ Á¢±Ù °¡´ÉÇÑ URL + ÆÄÀÏ À̸§ ÇüÅ·Π¹®ÀÚ¿À» ġȯÇÕ´Ï´Ù.
ÀÛ¾÷ÀÌ ³¡³ª¸é board.util.asp¿¡ ÀÖ´Â AddSlashes ÇÔ¼ö°¡ ÀÛÀº µû¿ÈÇ¥¿Í Å« µû¿ÈÇ¥¸¦ \+µû¿ÈÇ¥ ÇüÅ·Π¹Ù²Ù¾î ÁÝ´Ï´Ù.
À̶§ ÁÖÀÇÇÒ Á¡Àº ÆÄÀÏ¿¡¼ ÀоîµéÀÎ º»¹®ÀÇ Àüü¸¦ »ç¿ëÇÏÁö ¾Ê°í ¸Ç ¸¶Áö¸· ÇÑ ±ÛÀÚ, Áï EOF´Â Á¦°ÅÇÕ´Ï´Ù. (ÀÌÈÄ Äõ¸®¸¦ ¸¸µé±â À§Çؼ »©¾ß ÇÕ´Ï´Ù.)