lecture Home > ASP.NET > Taeyo's ASP.NET

Taeyo's ASP.NET

   °­Á ÃÖÃÊ ÀÛ¼ºÀÏ : 2005³â 07¿ù 17ÀÏ
   °­Á ÃÖÁ¾ ¼öÁ¤ÀÏ : 2005³â 07¿ù 21ÀÏ

   °­Á ÀÐÀ½ ¼ö : ȸ

   ÀÛ¼ºÀÚ : Taeyo(±è Å¿µ)
   ÆíÁýÀÚ : Taeyo(±è Å¿µ)

   °­Á Á¦¸ñ : ASPX ÆäÀÌÁö¸¦ À̹ÌÁö·Î µÐ°©½Ã۱â

°­Á Àü Å¿ÀÀÇ Àâ´ã>

Á¤¸»·Î °£¸¸ÀÇ °­ÁÂÀÌÁö¿ä? °­Á ¾÷µ¥ÀÌÆ®°¡ ºó¹øÇÏÁö ¾ÊÀº Á¡ ´ë´ÜÈ÷ Á˼ÛÇÕ´Ï´Ù. ¤Ì¤Ì

°úÁßÇÑ ¾÷¹«·Î ÀÎÇØ¼­¸®.. «³»±â°¡ ½±Áö°¡ ¾Ê´õ¶ó±¸¿ä. Àڱ׸¶ÇÑ °¨Åõµé±îÁö ¿ì°¿ì° ¾ò¾î¾²´Ùº¸´Ï... ¾÷¹« ¿Ü¿¡µµ ¿ÜºÎȰµ¿À¸·Îµµ ¸¹Àº ½Ã°£À» ½á¾ß ÇØ¼­¿ä ¤Ì¤Ì..  °³ÀÎÀûÀÎ À̾߱â´Â ¿ä±â±îÁö¸¸ ÇϰڽÀ´Ï´Ù. Àç¹Ì¾ø´Â À̾߱âµéÀ̴ϱî¿ä ÇÏÇÏ...

À̹ø °­Á´ µ¶¸³ÀûÀÎ °­ÁÂÀ̱ä ÇÏÁö¸¸, À̾îÁú °­ÁÂÀÎ "DataGrid¸¦ °£´ÜÇÏ°Ô Excel·Î º¯È¯Çϱâ" °­Á¸¦ À§ÇÑ Ãʼ®À̱⵵ ÇÕ´Ï´Ù. ±×·³ ½Å³ª°Ô ½ÃÀÛÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.


ASP.NETÀº Active Server Pages .NET ÀÌ´Ù

ASP³ª ASP.NET¿¡ ´ëÇØ ¸¹Àº Ãʺ¸ÀںеéÀÌ À߸ø ¾Ë°í ÀÖ´Â °Í Áß¿¡ Çϳª´Â ÀÌ ±â¼úÀÌ ½ÇÇàÀÇ °á°ú·Î½á HTMLÀ» µ¿ÀûÀ¸·Î »ý¼º(Generating)ÇØ ÁØ´Ù°í¸¸ ¾Ë°í ÀÖ´Â °ÍÀÔ´Ï´Ù.

¹°·Ð, ´ëºÎºÐÀÇ °æ¿ì´Â ASP³ª ASP.NETÀÇ °á°ú¹°·Î HTML ÅÂ±× ÁýÇÕÀÌ »ý¼ºµÇ±â¿¡ À̰ÍÀÌ ¿ÏÀüÈ÷ Ʋ¸° ¸»Àº ¾Æ´Ï°ÚÁö¸¸, »ç½Ç ASP³ª ASP.NETÀº ´ÜÁö ±×·¸°Ô HTML °á°ú¸¸À» »ý¼ºÇس»´Â °¡º­¿î ¼öÁØÀÇ ±â¼úÀÌ ¾Æ´Õ´Ï´Ù. ASP³ª ASP.NETÀº µ¿ÀûÀÎ ÆäÀÌÁö ±â¼úÀ̸ç, ±× ÆäÀÌÁö°¡ ¾î¶² ÇüÅÂÀÇ µ¥ÀÌÅͰ¡ µÉ °ÍÀÎÁö´Â ¾ó¸¶µçÁö °³¹ßÀÚÀÇ Àǵµ¿¡ µû¶ó ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. ±×·¡¼­ Active Server Pages ÀÎ °ÍÀÌÁÒ!! 

°³¹ßÀÚ°¡ ¼³Á¤¸¸ ÇÑ´Ù¸é ASP ³ª ASPX¶ó´Â È®ÀåÀÚ¸¦ °®´Â À̹ÌÁö¸¦ ¸¸µé¾î ³¾ ¼öµµ ÀÖ½À´Ï´Ù. Áï, ASP³ª ASP.NET ÆäÀÌÁö°¡ À̹ÌÁö ÀÚü·Î º¯È¯µÉ ¼öµµ ÀÖ´Ù´Â À̾߱âÁÒ. ±× »Ó¸¸ÀÌ ¾Æ´Õ´Ï´Ù. À̵éÀº ¿øÇÏ´Â °ÍÀº ¹«¾ùÀÌ´ø µÉ ¼ö°¡ ÀÖ½À´Ï´Ù. Zip ÆÄÀÏÀ̳ª, DOC ¹®¼­, ½ÉÁö¾î´Â PPT ÆÄÀÏÀÌ µÉ ¼öµµ ÀÖ´Â °ÍÀÔ´Ï´Ù.

±×·¯¸é, ÀÌ ¸»ÀÌ »ç½ÇÀÎÁö Çѹø È®ÀÎÇØ º¸´Â ½Ã°£À» °¡Á® º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ±×¸®°í, ÀÌ·¯ÇÑ Áö½ÄÀ» ÀÌ¿ëÇÏ¿© ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÏ´Â Áß°£ º¯È¯ ASP.NET ÆäÀÌÁöµµ ¸¸µé¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

¿ì¼± ¾î¶² À̹ÌÁöÀ̵çÁö ¿©·¯ºÐÀÌ °¡Áö°í ÀÖ´Â À̹ÌÁö Áß¿¡ Çϳª(JPG À̹ÌÁö)¸¦ C:\temp µð·ºÅ͸®¿¡ º¹»çÇØ ÁÖ¼¼¿ä. ÀúÀÇ °æ¿ì´Â maple.jpg ¶ó´Â ´ÜdzÀÙ »çÁøÀ» ¼±ÅÃÇØ º¸¾Ò½À´Ï´Ù(ÀÌ»ÚÁö´Â ¾ÊÁö¸¸, Á¦°¡ Á÷Á¢ ÂïÀº »çÁøÀÔ´Ï´Ù). À̹ÌÁö°¡ ÁغñµÇ¾ú´Ù¸é ÀÌÁ¦ VS.NETÀ¸·Î »õ·Î¿î À¥ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé°í, °Å±â¿¡ »õ·Î¿î À¥ Æû ÆäÀÌÁö¸¦ Çϳª Ãß°¡Çϵµ·Ï Çϼ¼¿ä. ±âº»ÀûÀ¸·Î ¸¸µé¾îÁö´Â WebForm1.aspx ÆäÀÌÁö¸¦ ÀÌ¿ëÇØµµ µÇ°ÚÁö¸¸, ±â¿Õ ¸¸µå´Â°Å »õ·Ó°Ô Çϳª ¸¸µé¾îÁÖ´Â °Ô ÁÁÀ» µí ÇÕ´Ï´Ù. ÀúÀÇ °æ¿ì´Â ÆÄÀÏÀÇ À̸§À» AspxImage.aspx ¶ó°í Á־¾Ò½À´Ï´Ù.

ÀÌÁ¦ ÀÌ AspxImage.aspx ÆäÀÌÁö¸¦ À̹ÌÁö·Î µÐ°©½Ãų °ÍÀÔ´Ï´Ù. Áï, »ç¿ëÀÚ´Â ¼­¹ö¿¡°Ô AspxImage.aspx¶ó´Â ÆäÀÌÁö¸¦ ¿äûÇÒ °ÍÀÌÁö¸¸, ¿ì¸®´Â AspxImage.aspx ¶ó´Â À̸§À» °®´Â Jpeg Çü½ÄÀÇ À̹ÌÁö¸¦ ¸¸µé¾î¼­ ±× ¹ÙÀ̳ʸ® µ¥ÀÌÅ͸¦ ºê¶ó¿ìÀú¿¡°Ô ³»·Áº¸³¾ °ÍÀ̶ó´Â À̾߱âÀÌÁö¿ä~.

¸»º¸´Ù´Â ¿ª½Ã ÄÚµåÀÔ´Ï´Ù. ÀÏ´Ü, AspxImage.aspx ÆäÀÌÁöÀÇ HTML ¸ðµå¿¡¼­ <@ Page %> Áö½ÃÀÚ ±¸¿ªÀ» Á¦¿ÜÇÑ ¸ðµç Äڵ带 ÀüºÎ »èÁ¦Çϵµ·Ï ÇϰڽÀ´Ï´Ù. ±×·¯¸é, AspxImage.aspx ÆäÀÌÁö¿¡´Â ´ÜÁö ´ÙÀ½ÀÇ Äڵ常ÀÌ ³²°Ô µÇ°ÚÁÒ?

<%@ Page language="c#" Codebehind="AspxImage.aspx.cs" AutoEventWireup="false" Inherits="TaeyoAspNet.AspxImage" %>

ÀÌÁ¦ ÄÚµå ºñÇÏÀÎµå ÆäÀÌÁö·Î À̵¿ÇØ º¸°Ú½À´Ï´Ù. ±×¸®°í, Page_Load À̺¥Æ® 󸮱⸦ ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇϼ¼¿ä.

private void Page_Load(object sender, System.EventArgs e)
{
    string imagePath = @"C:\temp\maple.jpg";

    Response.Clear();
    Response.ContentType = "Image/Jpeg";
    Response.WriteFile(imagePath);

    Response.End();
}

À§ÀÇ Äڵ忡¼­ À̹ÌÁöÀÇ °æ·ÎÀÎ imagePath º¯¼öÀÇ °ªÀº ¿©·¯ºÐÀÇ »óȲ¿¡ ¸Â°Ô ¾Ë¾Æ¼­ ÁöÁ¤ÇÏ¼Å¾ß ÇÕ´Ï´Ù (¿©·¯ºÐÀÌ ¼±ÅÃÇÑ À̹ÌÁö ¸íÀÌ Å¿À¿Í´Â ´Ù¸¦ ¼ö ÀÖÀ¸¹Ç·Î). ±×¸®°í, Äڵ带 ¸ðµÎ ÀÛ¼ºÇÏ¿´´Ù¸é ÆäÀÌÁö¸¦ ÄÄÆÄÀÏÇÏ°í ½ÇÇàÇÏ¿© °á°ú¸¦ È®ÀÎÇØ º¸°Ú½À´Ï´Ù.

±×·¸½À´Ï´Ù. À̹ÌÁö°¡ ·ÎµåµÇ¾îÁý´Ï´Ù. »ç½Ç, ¾ð¶æ °ÑÀ¸·Î º¸±â¿¡´Â ÀÌ °á°ú°¡ ±×¸® ´ë´ÜÇØ º¸ÀÌÁö ¾ÊÀ» ¼öµµ ÀÖ¾î¿ä. ºê¶ó¿ìÀú¿¡ ´Ü¼øÈ÷ À̹ÌÁö°¡ Ãâ·ÂµÈ °Í¿¡ ºÒ°úÇÏ´Ï ¸»ÀÔ´ÏÀÌ´Ù. Á¤¸»·Î ±×·¸°Ô »ý°¢Çϼ¼¿ä? ±×·¸´Ù¸é, ÀÌ ÆäÀÌÁöÀÇ HTML ¼Ò½º¸¦ »ìÆì º¸µµ·Ï ÇÏÁÒ. ¼Ò½º¸¦ º¸±â À§Çؼ­´Â ¸Þ´º¿¡¼­ [º¸±â|¼Ò½º] ¸¦ ¼±ÅÃÇÕ´Ï´Ù. ±× ¸Þ´º°¡ ºñȰ¼ºÈ­ µÇ¾îÁ® ÀÖ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ±×ÃÝ?

±×·¸½À´Ï´Ù. HTML ¼Ò½º´Â º¼ ¼ö°¡ ¾ø½À´Ï´Ù. ¿Ö³ÄÇϸé, ±×·± °ÍÀÌ Á¸ÀçÇÏÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù!!!!! ±×·¸´Ù¸é, ±×¸²¿¡ ¸¶¿ì½º ¿ìÃø Ŭ¸¯À» ÇÏ¿© ±×¸²ÀÇ [¼Ó¼º]À» »ìÆìº¸µµ·Ï ÇϰڽÀ´Ï´Ù.

±×¸²ÀÇ ÆÄÀϸíÀÌ AspxImage.aspxÀÎ °ÍÀ» È®ÀÎÇϼ¼¿ä. ±×¸®°í, ÀÌ ÆÄÀÏÀÇ Çü½ÄÀÌ JPEG¶ó´Â °Íµµ È®ÀÎÇϵµ·Ï Çϼ¼¿ä. ºÐ¸í ÆÄÀÏÀº aspx ÀÓ¿¡µµ ÆÄÀÏÀÇ Çü½ÄÀº JPG ÆÄÀÏÀÓÀ» È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. Áï, ÀÌ´Â ASP.NET ÆäÀÌÁöÀ̸鼭, µ¿½Ã¿¡ À̹ÌÁö ÆÄÀÏÀÎ °ÍÀÔ´Ï´Ù. ÀÌó·³ ASP.NET ÆäÀÌÁö´Â À̹ÌÁö·Î½á °Åµì³¯ ¼ö°¡ ÀÖ´Ù´Â °ÍÀÌÁÒ.

±×·¸´Ù¸é, ÀÌÁ¦ ¼Ò½º¸¦ »ìÆìº¼ ½Ã°£ÀÔ´Ï´Ù. µµ´ëü Äڵ忡¼­ ¾î¶² ¸¶¹ýÀ» ºÎ·È±â¿¡ ÀÌ·± º¯È¯ÀÌ °¡´ÉÇß´ø °ÍÀϱî¿ä?

¿ì¸®°¡ »ìÆìº¼ Page_Load À̺¥Æ® ÄÚµåÀÇ ½ÃÀÛÀº ÀÀ´ä °³Ã¼ÀÎ ResponseÀÇ Clear ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î ½ÃÀÛÇÕ´Ï´Ù.

Response.Clear();

»ç½Ç, ÀÌ ÄÚµå´Â »ý·«Çصµ ¹«¹æÇÕ´Ï´Ù. ¾ÆÁ÷ ±× ¾î¶°ÇÑ Äڵ嵵 Ŭ¶óÀÌ¾ðÆ®·Î ³»·Áº¸³»°í ÀÖÁö ¾ÊÀ¸´Ï ¸»ÀÔ´Ï´Ù. ÇÏÁö¸¸, È®ÀÎÂ÷¿ø¿¡¼­ ÀÌ Äڵ带 ³Ö´Â °ÍÀº ÁÁÀº ½À°üÀ̶ó ÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù. À̴ Ŭ¶óÀÌ¾ðÆ® ºê¶ó¿ìÀú·Î ³»·Áº¸³»±â À§ÇØ ÁغñµÇ¾îÁ® ÀÖÀ»Áöµµ ¸ð¸£´Â µ¥ÀÌÅ͵éÀ» ¼­¹ö Ãø¿¡¼­ ¼Ò¸êÇÏ´Â ¿ªÇÒÀ» Çϰŵç¿ä. Áï, ¹öÆÛ¸¦ ¸ðµÎ ±ú²ýÇÏ°Ô ºñ¿ì´Â ¿ªÇÒÀ» ÇÑ´Ù´Â °ÍÀÌÁÒ. ¹öÆÛ´Â Ŭ¶óÀÌ¾ðÆ® ºê¶ó¿ìÀú·Î ³»·ÁÁÖ±â À§ÇØ ÁغñµÇ¾îÁö´Â µ¥ÀÌÅÍÀÇ Àӽà ÀúÀå °ø°£À» ¸»ÇÕ´Ï´Ù.

¹öÆÛ¸¦ ±ú²ýÇÏ°Ô ºñ¿î µÚ¿¡´Â, ¼­¹ö¿¡¼­ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô·Î ³»·Áº¸³¾ ½ÇÁ¦ µ¥ÀÌÅÍ·Î ¹öÆÛ¸¦ ä¿ì±â Àü¿¡ ¸ÕÀú ³»·Áº¸³¾ µ¥ÀÌÅÍÀÇ Æ÷¸ËÀÌ ¾î¶² °ÍÀÎÁö ±× ŸÀÔÀ» ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. ±×¸®°í, À̸¦ À§Çؼ­´Â Response °³Ã¼ÀÇ ContentType ¼Ó¼ºÀ» »ç¿ëÇØ¾ß Çϱ¸¿ä.

Response.ContentType = "Image/Jpeg";

ContentType ¼Ó¼º °ªÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº °¢°¢ÀÇ ÆÄÀÏ¿¡ ´ëÇÑ MIME ŸÀÔÀÔ´Ï´Ù. ÇØ¼­, ¿¹Á¦¿¡¼­´Â JPG À̹ÌÁö ÆÄÀÏÀÇ MIME Çü½ÄÀÎ "Image/JPEG"¸¦ ÁöÁ¤ÇØ º¸¾Ò¾î¿ä. ÀÌ °ªÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ±âº»ÀûÀ¸·Î MIME ŸÀÔÀº "text/html"·Î ÁöÁ¤µÇ¸ç, ±×·¡¼­ ASP.NET ÆäÀÌÁöµéÀº ContentType¿¡ ´ëÇÑ º°µµÀÇ ÁöÁ¤ÀÌ ¾ø¾îµµ HTML ÅÂ±× ÁýÇÕÀ» µ¿ÀûÀ¸·Î »ý¼ºÇÏ¿© ºê¶ó¿ìÀú·Î ³»·ÁÁÙ ¼ö ÀÖ¾ú´ø °ÍÀÔ´Ï´Ù.

³»·Áº¸³¾ ÆÄÀÏÀÌ ¾î¶² ŸÀÔÀÎÁö¸¦ ÁöÁ¤ÇßÀ¸´Ï ÀÌÁ¦´Â ½ÇÁ¦·Î JPEG À̹ÌÁö¿¡ ÇØ´çÇÏ´Â ÆÄÀÏ ½ºÆ®¸² µ¥ÀÌÅ͸¦ ºê¶ó¿ìÀú·Î ³»·ÁÁÖ¾î¾ß(Áï, ´Ù¿î·Îµå) ÇÕ´Ï´Ù. ±âÁ¸ ASP¿¡¼­´Â ÀÌ ºÎºÐÀ» ó¸®ÇÒ ¹æ¹ýÀÌ ¾ø¾úÁö¸¸(ADOÀÇ Stream °³Ã¼¸¦ ÅëÇØ¼­ ¾î·ÆÁö¸¸ °¡´ÉÇϱâ´Â Çß¾úÁÒ), ASP.NET¿¡ µé¾î¼­¼­´Â Response °³Ã¼°¡ Á¦°øÇÏ´Â WriteFile À̶ó´Â Ưº°ÇÑ ¸Þ¼­µå¸¦ ÅëÇØ¼­ ÀÌ ºÎºÐÀÌ ½±°Ô °¡´ÉÇÕ´Ï´Ù.

Response °³Ã¼ÀÇ WriteFile() ¸Þ¼­µå´Â ÀÎÀÚ·Î ÁöÁ¤µÈ ÆÄÀÏÀÇ ½ºÆ®¸²À» ¸Þ¸ð¸®·Î Àоî¿Í ¹öÆÛ¿¡ ¸ðµÎ ±â·ÏÇÏ´Â ¸Þ¼­µåÀÔ´Ï´Ù.

Response.WriteFile(imagePath);

±× ´ÙÀ½À¸·Î À̾îÁö´Â ÄÚµå´Â ÇöÀç±îÁö ¹öÆÛ¿¡ ÀúÀåµÈ ¸ðµç Ãâ·ÂÀ» Ŭ¶óÀÌ¾ðÆ®¿¡ ½ÇÁ¦·Î ³»·Á º¸³»°í, ÆäÀÌÁö ½ÇÇàÀ» ÁßÁöÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù.

Response.End();

À̰ÍÀÌ ÀüºÎÀÔ´Ï´Ù. ±»ÀÌ ¼ø¼­¸¦ Á¤¸®ÇØ º»´Ù¸é..

    1) ¹öÆÛ¸¦ ±ú²ýÀÌ Çϰí - Response.Clear()
    2) ³»·Áº¸³¾ µ¥ÀÌÅÍÀÇ Çü½ÄÀ» ÁöÁ¤Çϰí - Response.ContentType = MIME Type
    3) ¹öÆÛ¿¡ ¹ÙÀ̳ʸ® µ¥ÀÌÅ͸¦ ¸ðµÎ ä¿î µÚ - Response.WriteFile(imagePath)
    4) ±× µ¥ÀÌÅ͸¦ ºê¶ó¿ìÀú·Î ³»·Áº¸³½´Ù - Response.End()

±× ¾î¶°ÇÑ HTML ű׵µ ÇÊ¿ä¾ø½À´Ï´Ù. HTML ¹®ÀÚ¿­À» ´Ù¿î·Îµå ÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ï ¸»ÀÔ´Ï´Ù. µ¥ÀÌÅÍÀÇ Å¸ÀÔ¸¸ ÁöÁ¤Çϰí, ¹öÆÛ¿¡ ÇØ´ç µ¥ÀÌÅ͸¸ ·ÎµåÇÒ ¼ö ÀÖ´Ù¸é, ±× ¾î¶°ÇÑ ÆÄÀϵµ ¸¶Âù°¡Áö·Î Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ³»·Áº¸³¾ ¼ö ÀÖ½À´Ï´Ù. Zip ÆÄÀÏÀÇ °æ¿ìµµ ¸¶Âù°¡Áö °ÚÁö¿ä. Response.ContentType = "Application/x-gzip" À̶ó°í¸¸ ÁöÁ¤Çϰí, ÇØ´ç zip ÆÄÀÏÀ» ¹öÆÛ¿¡ ·ÎµåÇϱ⸸ ÇÑ´Ù¸é, ¸¶Âù°¡Áö·Î ASP.NET ÆäÀÌÁö´Â ZIP ÆÄÀÏÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð, ÀÌ °æ¿ì¿¡´Â zip ÆÄÀÏÀÌ ºê¶ó¿ìÀú¿¡ ·ÎµåµÇ´Â ´ë½Å, ÆÄÀÏ ´Ù¿î·Îµå âÀÌ ³ªÅ¸³ª°Ô µÉ °ÍÀÌÁö¸¸ ¸»ÀÔ´Ï´Ù.

ºê¶ó¿ìÀú°¡ ÀνÄÇÒ ¼ö ÀÖ´Â ÆÄÀÏÀÎ GIF, JPG µîÀÇ À̹ÌÁö ÆÄÀÏÀ̳ª, Text ÆÄÀÏ, HTML ÆÄÀÏÀº ´Ù¿î·Îµå âÀÌ º°µµ·Î ¶ßÁö ¾Ê°í, ºê¶ó¿ìÀú¿¡ ±× °á°ú°¡ Á÷Á¢ÀûÀ¸·Î Ãâ·Â(´Ù¿î·Îµå)µÇ¸ç, ASP³ª ASP.NET ÆäÀÌÁöÀÇ °æ¿ìµµ ¼­¹ö¿¡¼­ ½ÇÇàµÇ°í ±× °á°ú°¡ ºê¶ó¿ìÀú¿¡ Ãâ·ÂµË´Ï´Ù. ÀÌ·¯ÇÑ È®ÀåÀÚ¸¦ °¡Áø ÆÄÀϵéÀº ±âº»ÀûÀ¸·Î ºê¶ó¿ìÀú¿¡ ·ÎµåµÇ´Â ÆÄÀϵéÀ̹ǷΠ´Ù¿î·Îµå âÀÌ ³ª¿ÀÁö ¾Ê°í ºê¶ó¿ìÀú¿¡ Á÷Á¢ÀûÀ¸·Î ´Ù¿î·Îµå µÈ´Ù´Â °ÍÀ» ±â¾ïÇØ ÁÖ¼ÌÀ¸¸é ÇÏ´Â ÂØ±ñÇÑ ¹Ù·¥ÀÌ ÀÖ½À´Ï´Ù. ÇØ¼­, ¿¹Á¦ÀÇ °æ¿ìµµ À̹ÌÁö°¡ ´Ù¿î·Îµå âÀ¸·Î ³ªÅ¸³ª´Â °ÍÀÌ ¾Æ´Ï¶ó, ºê¶ó¿ìÀú¿¡ ´Ù¿î·Îµå µÈ »óÅ·ΠÃâ·ÂµÈ °ÍÀÔ´Ï´Ù.

±×·¸´Ù°í, ÀÌ·¯ÇÑ ÆÄÀϵéÀ» ´Ù¿î·Îµå âÀ» ÅëÇØ¼­ °­Á¦·Î ´Ù¿î·Îµå ÇÒ ¼ö ¾ø´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ºÒ°¡´ÉÀº ÀÏ´ÜÀº ¾ø½À´Ï´Ù!!!

ÆÄÀÏÀÇ ContentType¸¦ "Application/UnKnown" À¸·Î °­Á¦·Î ÁöÁ¤ÇÏ°Ô µÇ¸é, ÆÄÀÏÀÇ Å¸ÀÔÀ» ¸··ÐÇÏ°í °­Á¦ÀûÀ¸·Î ´Ù¿î·Îµå âÀÌ ¶ß°Ô µË´Ï´Ù. Áï, ÆÄÀÏ Å¸ÀÔÀ» ¾Ë ¼ö ¾ø´Â °Í(UnKnown)À¸·Î ÁöÁ¤ÇÏ°Ô µÇ¸é, ºê¶ó¿ìÀú´Â ÀÌ ÆÄÀÏÀ» ºê¶ó¿ìÀú¿¡ ·ÎµåµÉ ¼ö ¾ø´Â ÆÄÀÏÇü½ÄÀ̶ó°í »ý°¢ÇÏ°í ¹«Á¶°Ç ´Ù¿î·Îµå âÀ» ¶ç¿ì±â ¶§¹®¿¡ ±×·¯ÇÑ °ÍÀÌÁÒ.

°ú¿¬ ±×·±Áö Çѹø ÇØ º¼±î¿ä? Page_Load À̺¥Æ® 󸮱âÀÇ Äڵ带 ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÏ°í ´Ù½Ã±Ý ½ÇÇàÇØ º¸µµ·Ï Çϼ¼¿ä. ^^ (ÆÄ¶õ»ö ÆùÆ® ºÎºÐÀÌ º¯°æµÈ ºÎºÐÀÔ´Ï´Ù)

private void Page_Load(object sender, System.EventArgs e)
{
    string imagePath = @"C:\temp\maple.jpg";

    Response.Clear();
    Response.ContentType = "Application/UnKnown";
    Response.WriteFile(imagePath);

    Response.End();
}

À̹ø¿¡´Â À̹ÌÁö°¡ ºê¶ó¿ìÀú·Î ´Ù¿î·Îµå µÇ´Â °ÍÀÌ ¾Æ´Ï¶ó, °­Á¦ÀûÀ¸·Î ´Ù¿î·Îµå âÀÌ ¶°¼­ ¿©·¯ºÐ¿¡°Ô ´Ù¿î·ÎµåÀÇ ¿©ºÎ¸¦ ¹°¾î¿Ã °ÍÀÔ´Ï´Ù. ±ÛÃÝ???

ÈìÀ̶ó¸é ÆÄÀÏÀÇ À̸§ÀÌ ¿øº» À̹ÌÁöÀÇ À̸§ÀÌ ¾Æ´Ñ aspx ÆäÀÌÁöÀÇ À̸§À¸·Î ³ª¿À°í ÀÖ´Ù´Â ºÎºÐÀÏ °ÍÀÔ´Ï´Ù. ´ëºÎºÐÀÇ »ç¿ëÀÚµéÀº ÆÄÀÏÀ» maple.jpg¶ó´Â ¿ø·¡ÀÇ À̹ÌÁö À̸§À¸·Î ´Ù¿î·Îµå ÇÒ ¼ö Àֱ⸦ ¹Ù¶ö °ÍÀ̱⿡ °¡±ÞÀûÀÌ¸é ±×·¯ÇÑ À̸§À¸·Î ³»·ÁÁÖ´Â °ÍÀÌ ³ªÀ» °Í °°³×¿ä. ^^

ÀÌ ¹æ¹ýÀ» ±Ã±ÝÇØ ÇÑ ºÐµéÀÌ ²Ï³ª ÀÖ¾úÀ» ÅÙµ¥, ¹æ¹ýÀº ÀǿܷΠ°£´ÜÇÕ´Ï´Ù. Content-Disposition ¶ó´Â Çì´õ·Î attachment;filename=maple.jpg ¶ó´Â °ªÀ» ÁöÁ¤ÇØÁÖ¸é µÇ´Â °ÍÀÌÁÒ. Response °³Ã¼ÀÇ AddHeader ¸Þ¼­µå¸¦ »ç¿ëÇØ¼­ ´ÙÀ½°ú °°ÀÌ ¸»ÀÔ´Ï´Ù. (ÀÌ ¹æ¹ýÀº ¸¶Ä¡ °ø½Äó·³ ASP¿¡¼­µµ µ¿ÀÏÇÏ°Ô Àû¿ëµË´Ï´Ù)

Response.AddHeader("Content-Disposition", "attachment;filename= ÆÄÀϸí");

±×·¸´Ù¸é, ¼Ò½º¿¡ ±×·¯ÇÑ Äڵ带 ´ÙÀ½°ú °°ÀÌ Ãß°¡ÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

private void Page_Load(object sender, System.EventArgs e)
{
    string imagePath = @"C:\temp\maple.jpg";

    Response.Clear();
    Response.ContentType = "Application/UnKnown";
    Response.AddHeader("Content-Disposition", "attachment;filename=" +
            Path.GetFileName(imagePath));

    Response.WriteFile(imagePath);

    Response.End();
}

¼Ò½º¿¡¼­´Â ÆÄÀÏ ¸íÀ» ÄÚµå·Î Á÷Á¢ ÁöÁ¤ÇÏÁö ¾Ê°í, Path Ŭ·¡½ºÀÇ GetFileName ¸Þ¼­µå¸¦ »ç¿ëÇØ¼­ µ¿ÀûÀ¸·Î ÆÄÀÏ À̸§À» ¾ò¾î¿Í¼­ ÁöÁ¤Çϰí ÀÖ½À´Ï´Ù. »ç½Ç, À̹ø ¿¹Á¦ÀÇ °æ¿ì¶ó¸é ±× ÆÄÀÏ ¸íÀ» Á÷Á¢ maple.jpg¶ó°í ÀÛ¼ºÇصµ µÉÅÙµ¥ ¿Ö ±×·¸°Ô Äڵ带 ÀÛ¼ºÇÑ °ÍÀϱî¿ä? ±× ÀÌÀ¯´Â ½ÇÁ¦ °³¹ß ½Ã¿¡¼­´Â ÆÄÀϸíÀÌ °íÁ¤ÀûÀÎ °æ¿ì´Â ¾øÀ¸¸ç ´ëºÎºÐ Äڵ带 À§¿Í °°ÀÌ »ç¿ëÇÏ°Ô µÉ °ÍÀ̱⠶§¹®ÀÔ´Ï´Ù. ¶ÇÇÑ, °â»ç°â»ç Path Ŭ·¡½ºÀÇ GetFileName Á¤Àû ¸Þ¼­µåµµ ¼Ò°³Çϱâ À§Çؼ­ À̱⵵ Çϱ¸¿ä~~ ÇÏÇÏ

ÆÄÀÏÀÇ Àüü °æ·Î¿¡¼­ ÆÄÀÏÀÇ À̸§À» ¾ò¾î³»´Â ¹æ¹ý¿¡´Â ¿©·¯ °¡Áö°¡ ÀÖ°ÚÁö¸¸, ±× Áß °¡Àå ½¬¿î ¹æ¹ýÀº Path Ŭ·¡½ºÀÇ GetFileName Á¤Àû ¸Þ¼­µå¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ÀÎÀÚ·Î ÁöÁ¤µÈ ¿ÏÀüÇÑ °æ·Î¿¡¼­ ÆÄÀÏ °æ·Î¸¸À» ÃßÃâÇØ¼­ ¹ÝÈ¯ÇØ ÁÖ´Â ¿ªÇÒÀ» Çϰŵç¿ä.

Path Ŭ·¡½º´Â System.IO ³×ÀÓ½ºÆäÀ̽º¿¡ µé¾îÀÖÀ¸¹Ç·Î, GetFileName ¸Þ¼­µå¸¦ »ç¿ëÇÏ·Á¸é ³×ÀÓ½ºÆäÀ̽º ÂüÁ¶ ±¸¿ª¿¡ using System.IO; ¸¦ Ãß°¡ÇØ ÁÖ¾î¾ß ÇÏ´Â °ÍÀ» ÀØÁö ¾Ê´Â ¼¾½º!! ÇÊ¿äÇÕ´Ï´Ù.

ÀÌÁ¦ ÆäÀÌÁö¸¦ ´Ù½Ã±Ý ÄÄÆÄÀÏÇÏ°í ½ÇÇàÇØ º¸µµ·Ï Çϼ¼¿ä. ´ÙÀ½°ú °°ÀÌ ÆÄÀÏ À̸§ÀÌ Á¦´ë·Î ³ªÅ¸³ª¸é¼­ ´Ù¿î·Îµå°¡ µÇ´Â °ÍÀ» º¼ ¼ö ÀÖÀ» °Å¿¹¿ä.

ÇÏÇÏÇÏ.. ¾î¶»½À´Ï±î? À볪ÁÒ?? ±×·¸½À´Ï´Ù. Àç¹ÌÀÖ´Â »ç½ÇÀ» ¿©·¯ºÐÀº Áö±Ý ¾Ë°Ô µÈ °ÍÀÔ´Ï´Ù(ÀÌ¹Ì ¾Ë°í ÀÖ¾ú´Ù ÇÏ´õ¶óµµ °°ÀÌ ¿ô¾îÁÖ´Â ¼¾½º!) 1) ASP.NET ÆäÀÌÁö´Â ±× ½ÇÇà °á°ú·Î HTML¸¸À» »ý¼ºÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ¹ÙÀ̳ʸ® À̹ÌÁö³ª ZIP ÆÄÀÏÀÌ µÉ ¼öµµ ÀÖ´Ù´Â °Í°ú 2) ±×·¸°Ô »ý¼ºµÈ À̹ÌÁö µîÀÇ µ¥ÀÌÅÍ´Â ¿ø·¡ ºê¶ó¿ìÀú·Î ÀÚµ¿ ´Ù¿î·Îµå µÇ¾î Ãâ·ÂµÇ´Âµ¥, ±×¸¦ °­Á¦·Î ´Ù¿î·Îµå âÀ» ÅëÇØ¼­ ÀúÀå½Ãų ¼öµµ ÀÖ´Ù´Â »ç½ÇÀ» ¸»ÀÌÁÒ~

ÀÚ. ÀÏ´Ü À̹ø °­Á´ ¿©±â±îÁö ÀÔ´Ï´Ù. ´ÙÀ½ ½Ã°£¿¡µµ À̸¦ ÀÀ¿ëÇÏ¿© Àç¹Ì³­ À̾߱⸦ ÁøÇàÇØ º¼Å×´Ï ÀÜ¶à ±â´ëÇÏ°í °è¼Å ÁÖ¼¼¿ä~

 

°­Á ¸ñ·ÏÀ¸·Î..