2017년 4월 24일 월요일

Java 파일 다운로드 한글 파일명 깨짐


fileName을 브라우저에 따라 다르게 세팅한다.


res.setContentType("application/octet-stream");
res.setHeader("Accept-Ranges", "bytes");

String userAgent = req.getHeader("User-Agent");

boolean ie = (userAgent.indexOf("MSIE") > -1 || userAgent.indexOf("Trident") > -1);

if(ie) {
fileName = URLEncoder.encode( fileName, "utf-8" ).replaceAll("\\+", "%20");
} else {
fileName = new String( String.valueOf(fileName).getBytes("utf-8"), "iso-8859-1");
}

res.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\";");
res.setHeader("Content-Transfer-Encoding", "binary");


IE, Chrome 에서 확인.

댓글 없음:

댓글 쓰기

스프링 빈 등록 순서 오류 시 @PostConstruct 사용

  스프링 xml 설정에서 등록할 빈을 명시적으로 지정한 것과 <context:component-scan>와 혼용해서 사용한  경우 빈등록 순서 오류가 발생 할 수도 있습니다. 여러가지 방법이 있지만, 그 중에서 @PostConstruct ...