package egovframework.com.cmm.web; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.PrintWriter; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.util.FileCopyUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import egovframework.com.cmm.EgovBrowserUtil; import egovframework.com.cmm.service.EgovFileMngService; import egovframework.com.cmm.service.FileVO; import egovframework.com.cmm.util.EgovBasicLogger; import egovframework.com.cmm.util.EgovResourceCloseHelper; import egovframework.com.cmm.util.EgovUserDetailsHelper; /** * 파일 다운로드를 위한 컨트롤러 클래스 * @author 공통서비스개발팀 이삼섭 * @since 2009.06.01 * @version 1.0 * @see * *
* << 개정이력(Modification Information) >> * * 수정일 수정자 수정내용 * ------------ -------- --------------------------- * 2009.03.25 이삼섭 최초 생성 * 2014.02.24 이기하 IE11 브라우저 한글 파일 다운로드시 에러 수정 * 2018.08.28 신용호 Safari, Chrome, Firefox, Opera 한글파일 다운로드 처리 수정 (macOS에서 확장자 exe붙는 문제 처리) * * Copyright (C) 2009 by MOPAS All right reserved. **/ @Controller public class EgovFileDownloadController { @Resource(name = "EgovFileMngService") private EgovFileMngService fileService; /** * 브라우저 구분 얻기. * * @param request * @return */ private String getBrowser(HttpServletRequest request) { String header = request.getHeader("User-Agent"); if (header.indexOf("MSIE") > -1) { return "MSIE"; } else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지 return "Trident"; } else if (header.indexOf("Chrome") > -1) { return "Chrome"; } else if (header.indexOf("Opera") > -1) { return "Opera"; } return "Firefox"; } /** * 첨부파일로 등록된 파일에 대하여 다운로드를 제공한다. * * @param commandMap * @param response * @throws Exception */ @RequestMapping(value = "/cmm/fms/FileDown.do") public void cvplFileDownload(@RequestParam Map