전자정부 파일 다운로드 한글 깨짐 질문입니다.
- 작성자 :
- 이*욱
- 작성일 :
- 2010-10-02 22:17:14
- 조회수 :
- 3,283
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
@RequestMapping(value = "/util/FileDown.do")
public void cvplFileDownload(Map<String, Object> commandMap, HttpServletResponse response) throws Exception {
String atchFileId = (String)commandMap.get("atchFileId");
String fileSn = (String)commandMap.get("fileSn");
//인증된사용자
// Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
Boolean isAuthenticated = true;
if (isAuthenticated) {
FileVO1 fileVO = new FileVO1();
fileVO.setBbsSeq(Integer.parseInt(atchFileId));
fileVO.setSeqNo(Integer.parseInt(fileSn));
FileVO1 fvo = fileService.selectFileInf(fileVO);
File uFile = new File(fvo.getFilePath(), fvo.getFileName());
int fSize = (int)uFile.length();
if (fSize > 0) {
BufferedInputStream in = new BufferedInputStream(new FileInputStream(uFile));
String mimetype = "application/x-msdownload;charset=utf-8";
System.out.println("getCharacterEncoding()==>>"+response.getCharacterEncoding());
response.setBufferSize(fSize);
response.setContentType(mimetype);
System.out.println("getCharacterEncoding()==>>"+response.getCharacterEncoding());
response.setHeader("Content-Disposition", "attachment; filename=\"" + fvo.getNatureFileName() + "\"");
response.setContentLength(fSize);
FileCopyUtils.copy(in, response.getOutputStream());
in.close();
response.getOutputStream().flush();
response.getOutputStream().close();
} else {
response.setContentType("application/x-msdownload;charset=utf-8");
PrintWriter printwriter = response.getWriter();
printwriter.println("<html>");
printwriter.println("<br><br><br><h2>Could not get file name:<br>" + fvo.getNatureFileName() + "</h2>");
printwriter.println("<br><br><br><center><h3><a href='javascript: history.go(-1)'>Back</a></h3></center>");
printwriter.println("<br><br><br>© webAccess");
printwriter.println("</html>");
printwriter.flush();
printwriter.close();
}
}
}
콘솔 확인결과
getCharacterEncoding()==>>ISO-8859-1
getCharacterEncoding()==>>utf-8
첨부파일 형식으로 나오는데 해결 방법좀 부탁드립니다.
전체적인 인코딩은 utf-8을 사용합니다.
public void cvplFileDownload(Map<String, Object> commandMap, HttpServletResponse response) throws Exception {
String atchFileId = (String)commandMap.get("atchFileId");
String fileSn = (String)commandMap.get("fileSn");
//인증된사용자
// Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
Boolean isAuthenticated = true;
if (isAuthenticated) {
FileVO1 fileVO = new FileVO1();
fileVO.setBbsSeq(Integer.parseInt(atchFileId));
fileVO.setSeqNo(Integer.parseInt(fileSn));
FileVO1 fvo = fileService.selectFileInf(fileVO);
File uFile = new File(fvo.getFilePath(), fvo.getFileName());
int fSize = (int)uFile.length();
if (fSize > 0) {
BufferedInputStream in = new BufferedInputStream(new FileInputStream(uFile));
String mimetype = "application/x-msdownload;charset=utf-8";
System.out.println("getCharacterEncoding()==>>"+response.getCharacterEncoding());
response.setBufferSize(fSize);
response.setContentType(mimetype);
System.out.println("getCharacterEncoding()==>>"+response.getCharacterEncoding());
response.setHeader("Content-Disposition", "attachment; filename=\"" + fvo.getNatureFileName() + "\"");
response.setContentLength(fSize);
FileCopyUtils.copy(in, response.getOutputStream());
in.close();
response.getOutputStream().flush();
response.getOutputStream().close();
} else {
response.setContentType("application/x-msdownload;charset=utf-8");
PrintWriter printwriter = response.getWriter();
printwriter.println("<html>");
printwriter.println("<br><br><br><h2>Could not get file name:<br>" + fvo.getNatureFileName() + "</h2>");
printwriter.println("<br><br><br><center><h3><a href='javascript: history.go(-1)'>Back</a></h3></center>");
printwriter.println("<br><br><br>© webAccess");
printwriter.println("</html>");
printwriter.flush();
printwriter.close();
}
}
}
콘솔 확인결과
getCharacterEncoding()==>>ISO-8859-1
getCharacterEncoding()==>>utf-8
첨부파일 형식으로 나오는데 해결 방법좀 부탁드립니다.
전체적인 인코딩은 utf-8을 사용합니다.
A
안녕하세요.. 이선욱님..
한글의 경우는 브라우저 처리 방식에 따라 한글이 깨지는 현상이 있습니다.
다음 공통컴포넌트의 요소기술 중 "파일다운로드" 부분의 소스를 받으셔서 참조하셔야 할 것 같습니다.
- 파일명 : egovframework-common-1.0.0.zip
- 참조 소스 : src/main/java/egovframework/com/cmm/web/EgovFileDownloadController.java
그럼.. 즐거운 하루되십시오.
감사합니다.
한글의 경우는 브라우저 처리 방식에 따라 한글이 깨지는 현상이 있습니다.
다음 공통컴포넌트의 요소기술 중 "파일다운로드" 부분의 소스를 받으셔서 참조하셔야 할 것 같습니다.
- 파일명 : egovframework-common-1.0.0.zip
- 참조 소스 : src/main/java/egovframework/com/cmm/web/EgovFileDownloadController.java
그럼.. 즐거운 하루되십시오.
감사합니다.