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();
}
}