À§·Î

¼­¹ö¿¡¼­ÀÇ µ¥ÀÌÅÍ Ã³¸®Çϱâ

¾×Ƽºê½ºÄù¾î°¡ Àû¿ëµÈ °Ô½ÃÆÇ¿¡¼­ ÀÔ·ÂµÈ µ¥ÀÌÅÍÀÇ Ã³¸® ¹æ¹ýÀº ÀÏ¹Ý °Ô½ÃÆÇÀÇ Ã³¸® ¹æ¹ý°ú À¯»çÇÕ´Ï´Ù. ´Ù¸¸ ¾×Ƽºê½ºÄù¾î¿¡¼­ ÀÛ¼ºµÈ ³»¿ë¸¸ ´Ù¸£°Ô 󸮵˴ϴÙ.

¼­¹ö¿¡¼­ÀÇ µ¥ÀÌÅÍ Ã³¸®

¾×Ƽºê½ºÄù¾î¿¡¼­ 󸮵Ǵ ÆÄÀÏÀÇ ÇüÅ´ ´ÙÀ½°ú °°½À´Ï´Ù.

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))   

msgnoÀº ÇöÀç ÀúÀåÇÒ °Ô½Ã¹°ÀÇ ÀÏ·Ã ¹øÈ£ÀÔ´Ï´Ù. °Ô½ÃÆÇ¿¡¼­´Â ÀÌ ÀÏ·Ã ¹øÈ£·Î ±¸ºÐÇÏ¿© °Ô½Ã¹°ÀÌ ÀúÀåµÉ µð·ºÅ丮¸¦ ƯÁ¤ µð·ºÅ丮 ¾Æ·¡¿¡ ¸¸µé °Ô µË´Ï´Ù. ±×¸®°í ÅØ½ºÆ®¿¡ Æ÷ÇÔµÈ ÆÄÀÏÀ» ÀÌ µð·ºÅ丮¿¡ ÀúÀåÇϰí, 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À¸·Î ÀúÀåÇÕ´Ï´Ù.)

Namo MIMEObjectÀ» ÀÌ¿ëÇÑ µðÄÚµù ¼ø¼­´Â ´ÙÀ½°ú °°½À´Ï´Ù.

  • COMÀ» »ý¼ºÇÕ´Ï´Ù.
  • ÆÄÀÏÀ» ÀúÀåÇÒ Æú´õ¿Í MIMEÀ» ÁöÁ¤ÇÏ¿© µðÄÚµùÇÕ´Ï´Ù.
  • µðÄÚµùÇÑ ÆÄÀϰú º»¹®Àº ÁöÁ¤ÇÑ Æú´õ¿¡ ÀúÀåÀÌ µË´Ï´Ù.
  • º»¹®À» ÀÐ¾î µéÀÌ°í º»¹®À» Áö¿ó´Ï´Ù.
  • º»¹®¿¡ ¸µÅ©µÇ¾î ÀÖ´Â ÆÄÀÏÀÇ ¸µÅ©¸¦ ÀûÀýÇÑ ÇüÅ·Π¹Ù²Ù¾î ÁÝ´Ï´Ù.

º»¹®¿¡ ¸µÅ©ÇØ ³õÀº ÆÄÀÏÀº µðÄÚµù °úÁ¤¿¡¼­ ƯÁ¤ µð·ºÅ丮·Î ÀúÀåÇÕ´Ï´Ù. µû¶ó¼­ ÀÌ·¯ÇÑ ÆÄÀϵéÀ» À¥¿¡¼­ º¸·Á¸é ÆÄÀÏÀÇ °æ·Î¸íÀ» Á¢±Ù °¡´ÉÇÑ URL·Î ¹Ù²Ù¾î¾ß ÇÕ´Ï´Ù.

FileSystemObjectÀÇ Folder ¿ÀºêÁ§Æ®¸¦ ÀÌ¿ëÇÏ¿© µðÄÚµù¿¡ »ç¿ëÇÑ Æú´õ¿¡ Àִ ÆÄÀÏÀÇ ÄÝ·º¼ÇÀ» ¾ò½À´Ï´Ù. ÆÄÀÏ ÄÝ·º¼ÇÀÇ ÆÄÀÏ À̸§ÀÌ º»¹®¿¡ ÀÖÀ» °æ¿ì À̸¦ Á¢±Ù °¡´ÉÇÑ URL + ÆÄÀÏ À̸§ ÇüÅ·Π¹®ÀÚ¿­À» ġȯÇÕ´Ï´Ù.

ÀÛ¾÷ÀÌ ³¡³ª¸é board.util.asp¿¡ ÀÖ´Â AddSlashes ÇÔ¼ö°¡ ÀÛÀº µû¿ÈÇ¥¿Í Å« µû¿ÈÇ¥¸¦ \+µû¿ÈÇ¥ ÇüÅ·Π¹Ù²Ù¾î ÁÝ´Ï´Ù.

À̶§ ÁÖÀÇÇÒ Á¡Àº ÆÄÀÏ¿¡¼­ ÀоîµéÀÎ º»¹®ÀÇ Àüü¸¦ »ç¿ëÇÏÁö ¾Ê°í ¸Ç ¸¶Áö¸· ÇÑ ±ÛÀÚ, Áï EOF´Â Á¦°ÅÇÕ´Ï´Ù. (ÀÌÈÄ Äõ¸®¸¦ ¸¸µé±â À§Çؼ­ »©¾ß ÇÕ´Ï´Ù.)