package froala.editor.utils.view; import java.io.IOException; import java.io.OutputStream; import java.net.URLEncoder; import java.util.Calendar; import java.util.Map; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.view.AbstractView; import egovframework.rte.fdl.cmmn.exception.EgovBizException; import froala.editor.utils.ExcelUtil; /** * * @since 2020. 6. 16. * @author 손희문 *
 * -----------------------
 * 개정이력
 * 2020. 6. 16. 손희문 : 최초작성
 * 
*/ public class ExcelDownloadView extends AbstractView { @Override protected void renderMergedOutputModel(Map model, HttpServletRequest request, HttpServletResponse response) throws EgovBizException, IOException { ExcelUtil excel = (ExcelUtil) model.get("excel"); String fileName = (String) model.get("fileName"); Calendar cal = Calendar.getInstance(); //현재 년도, 월, 일 int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; int date = cal.get(Calendar.DATE); String curDate = year + "." + month + "." + date; // 쿠키로 다운로드 완료 시점 확인 Cookie cookie = new Cookie("fileDownloadToken", "TRUE"); cookie.setPath("/"); cookie.setSecure(true); response.addCookie(cookie); // 입력된 내용 파일로 쓰기 response.setContentType("Application/Msexcel"); response.setHeader("Content-Disposition", "ATTachment; Filename=" + URLEncoder.encode(fileName+ "_" + curDate, "UTF-8") + ".xlsx"); //response.setContentType("application/download;charset=utf-8"); //response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\";"); //response.setHeader("Content-Transfer-Encoding", "binary"); OutputStream fileOut = response.getOutputStream(); excel.write(fileOut); fileOut.close(); response.getOutputStream().flush(); response.getOutputStream().close(); } }