SPRING
2018.09.28 / 24:02

ÆÄÀÏ ´Ù¿î·ÎµåÇÒ¶§ ÆÄÀÏÀ̸§ ¿ø·¡ À̸§À¸·Î ¹Ù²Ù±â

hangawee
Ãßõ ¼ö 187

ÆÄÀÏÀ» ¾÷·Îµå ÇÏ°í ´Ù¿î·Îµå ¹Þ´Â °úÁ¤¿¡¼­ ÀúÀå¼Ò¿¡ µ¿ÀÏÇÑ ÆÄÀÏÀ̸§À» °¡Áø ÆÄÀÏÀ» ¾÷µ¥ÀÌÆ® ÇÏ°Ô µÇ¸é ÀúÀåµÇ´Â ÆÄÀÏÀÇ

À̸§À» ¹Ù²Ù¾î ÁÖ¾î¾ß ÇÑ´Ù.


µ¿ÀÏÇÑ À̸§ÀÌ ÀÖÀ»¶§¸¶´Ù ÆÄÀÏ¸í µÚ¿¡ Ä«¿îÆ®¼ýÀÚ¸¦ ´Þ¾Æ ÁÖ´Â ¹æ¹ýÀ» »ç¿ëÇѴٰųª 

UUID °°Àº °ÍÀ» ÆÄÀϸíÀ¸·Î ¹Ù²Ù°í ÀúÀåÇѴٰųª ³¯Â¥¼øÀ¸·Î ÀúÀåÇϴµîÀÇ ¿©·¯°¡Áö ¹æ¹ýµéÀÌ ÀÖ´Ù.


±×·¸´Ù¸é ´Ù¿î ¹ÞÀ»¶§´Â ÆÄÀϸíÀÌ uuid³ª ÀÏ¹Ý »ç¿ëÀÚ°¡ ¾Ë¾Æº¸±â Èûµç ÆÄÀϸíÀ» »ç¿ëÇÏ¸é ¾ÈµÇ±â ¶§¹®¿¡


´Ù¿î·Îµå ¹ÞÀ»¶§´Â ´Ù½Ã ¿ø·¡ ÆÄÀϸíÀ¸·Î ´Ù¿î ¹Þµµ·Ï ÇØÁÖ¾î¾ß ÇÑ´Ù.


±×·¸±â À§Çؼ­´Â ÆÄÀϾ÷·Îµå¿Í ÇÔ²² DB¿¡ ÇØ´ç ÆÄÀÏÀÇ À̸§À̳ª À̸§ÀÌ Æ÷ÇÔµÈ °æ·Î¸¦ ³ÖÀ¸¸ç ½ÇÁ¦ÀúÀåµÇ´Â º¯°æµÈ ÆÄÀÏÀ̸§°ú ¿øº»ÆÄÀÏÀÇ À̸§ µÎ°¡Áö¸¦ ³Ö¾î ÁÖ¾î¾ß ÇÑ´Ù.


¹®Á¦´Â ¿©±â¼­ ¹ß»ýÇÑ´Ù. ÈçÈ÷ ³ª¿ÍÀÖ´Â ÆÄÀÏ ¾÷/´Ù¿î·Îµå ·ÎÁ÷À̳ª ÀüÀÚÁ¤ºÎ ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÏ´Ùº¸¸é ÆÄÀÏÀ» ´Ù¿î¹ÞÀ»¶§ ½ÇÁ¦ ÀúÀåµÈ ÆÄÀÏÀ̸§¸¸ °¡Á®¿Í¼­ ´Ù¿î·Îµå ¹Þ´Â ·ÎÁ÷À¸·Î Â¥¿©Á® ÀÖ°í ´Ü¼øÈ÷ º¹»çÇؼ­ ºÙ¿©³Ö±â¸¦ ÇÏ´Â ¹æ¹ýÀ¸·Î »ç¿ëÇÏ´Ï ´Ù¿î¹ÞÀ»¶§ µðºñ¿¡¼­ À̸§µÎ°¡Áö¸¦ °¡Áö°í ¿À°í ³ª¼­ ÀÌÈÄ¿¡ ¾î¶»°Ô ÇØ¾ß ÇÒÁö ¸ð¸£´Â °æ¿ì°¡ »ý±ä´Ù.


´ëÇ¥ÀûÀ¸·Î ÄÁÆ®·Ñ·¯¿¡¼­ 


 return new ModelAndView("download", "downloadFile", file); 


ÀÌ·¸°Ô ¸®ÅÏ°ªÀ» modelAndView·Î »ç¿ëÇÏ´Â ¹æ¹ý¿¡¼­ ½ÇÁ¦ÀúÀåµÈ ÆÄÀϸíÀ» ¹Ù²ã¼­ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸ÀÚ.




ÀÏ´Ü ¸®ÅϵǴ  ModelAndView("download", "downloadFile", file) ¿©±â¼­ 


'download'´Â dispatcher-servlet.xml ¿¡¼­ ÁöÁ¤µÇ´Â °ªÀ¸·Î. µð½ºÆÐÃÄ ÆÄÀÏÀ» ¿­°í³ª¼­ downloadÀ» °Ë»öÇØ º¸¸é



<bean id="download" class="egovframework.XXXXXXXX.XXXXXXX.XXXXXXXX.DownloadView" />


¿Í °°Àº Çü½ÄÀ¸·Î ¾²¿© ÀÖÀ» °ÍÀÌ´Ù. 'download'¶ó´Â ¿äûÀ» ¹ÞÀ¸¸é ÇØ´ç Ŭ·¡½º¸¦ ½ÇÇàÇÏ°Ú´Ù´Â Áß°£ÀÇ XXXÇ¥´Â ÆÐÅ°Áö °æ·ÎÀÌ´Ù.


DownloadView Ŭ·¡½º¸¦ ¿­¾î º¸¸é 



File file = (File) model.get("downloadFile"); <- ÀÌ·±½ÄÀ¸·Î modelAndViewÀÇ µÎ¹ø° ÀÎÀÚ¸¦ ºÒ·¯¿À¸ç °á°ú´Â downloadFileµÚ¿¡ ¾²¿©Áø fileÀÌ µÈ´Ù.



¾Æ·¡·Î Á» ³»·Áº¸¸é 


fileName = URLEncoder.encode(file.getName(),"UTF-8").replaceAll("\\+", "%20");


ÀÌ·±½ÄÀ¸·Î ÇØ´ç ÆÄÀÏÀÇ À̸§À» ²¨³»¼­ 


 response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ";");


ÀÌ·¸°Ô ÆÄÀÏÀ̸§À» ¼ÂÆÃÀ» Çϴµ¥


¿©±â¼­ ¼ÂÆõǴ fileName¸¸ ¿ø·¡ ÆÄÀÏÀ̸§À¸·Î ¹Ù²ãÁÖ¸é µÇ´Â °ÍÀÌ´Ù.




ÀÌÁ¦ºÎÅÍ ¾î¶»°Ô ÇØ¾ß ÇÏ´ÂÁö ¹æ¹ýÀ» ¾Ë¾Æº¸ÀÚ



¿ì¼± ´Ù¿î·Îµå URLÀÌ ¾î³ëÅ×ÀÌ¼Ç µÇ¾î ÀÖ´Â ÄÁÆ®·Ñ·¯¿¡¼­ 


¸®ÅϵǴ °ªÀ» return new ModelAndView("download", "downloadFile", file); °¡ ÀÖ´Â ÄÁÆ®·Ñ·¯¸¦




fileName = new String(fileName.getBytes("iso-8859-1"), "UTF-8"); // ÆÄÀÏÀ̸§ ±úÁö´Ï±î ÀÎÄÚµù

     realName = new String(realName.getBytes("iso-8859-1"), "UTF-8");

//propertiesService.getString("Globals.FmsFilePath")´Â ¹Ì¸® ÁöÁ¤ÇسõÀº °æ·Î´Ï±î ±×³É ÆÄÀÏ°æ·Î¶ó°í »ý°¢ÇÏ¸é µÊ

     String fullPath = propertiesService.getString("Globals.FmsFilePath") + "\\°æ·Î\\" + fileName;

    

    File file = new File(fullPath); // ½ÇÁ¦ ÆÄÀÏ °æ·Î¸¦ ÁöÁ¤ÇØ »ý¼ºÇÑ ÆÄÀÏ

    File file2 = new File(realName); // ¹Ù²Ü ÆÄÀÏÀ̸§¸¸ ³Ö¾î³õÀº ÆÄÀÏ  realNameÀº String°ªÀÌ´Ù.


   ModelAndView mav = new ModelAndView();

    mav.setViewName("download");

    mav.addObject("downloadFile", file); // ½ÇÁ¦ ÀúÀåµÈ ÆÄÀÏ

    mav.addObject("realFileName", file2); //db¿¡ ÀúÀåÇØ ³õÀº ¿ø·¡ ÆÄÀÏÀ̸§

    

    if(!file.exists()){

     return null;

    }

    //    return new ModelAndView("download", "downloadFile", file);

    return mav;



ÀÌ·¸°Ô ¹Ù²Ù¾î ÁÖµµ·Ï ÇÏÀÚ.


Áï ModelAndView¿¡ µÎ°³ÀÇ ¿ÀºêÁ§Æ®¸¦ ³Ö¾î¼­ ³Ñ±â´Â °ÍÀÌ´Ù.



±×¸®°í ´Ù½Ã DownloadView ·Î °¡¼­ 


 fileName = URLEncoder.encode(file.getName(),"UTF-8").replaceAll("\\+", "%20");

  response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ";");


À§ÀÇ Äڵ带 ¾Æ·¡¿Í °°ÀÌ ¹Ù²ãÁÖµµ·Ï ÇÏÀÚ.


   File file2 = (File) model.get("realFileName");

String fileName="test";

try{

 fileName = URLEncoder.encode(file2.getName(),"UTF-8").replaceAll("\\+", "%20");

}

catch(Exception e){

  fileName = URLEncoder.encode(file.getName(),"UTF-8").replaceAll("\\+", "%20");

}

  response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ";");




ÀÌ·¸°Ô ÇÏ¸é ³¡! ¿Ï¼º! ÇØ°á!




Ãâó: http://yamea-guide.tistory.com/category/Yame Programmer/ÀüÀÚÁ¤ºÎÇÁ·¹ÀÓ¿öÅ©?page=2 [±âŸġ´Â °³¹ßÀÚÀÇ ¾ß¸Å °¡À̵å]