파일다운로드시 파일명이 세팅되지 않습니다.
- 작성자 :
- 임*승
- 작성일 :
- 2018-08-22 22:27:32
- 조회수 :
- 4,682
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
response.setHeader("Connection", "Keep-Alive");
response.setContentType("application/x-msdownload;charset=utf-8");
response.setHeader("Content-Disposition:", "attachment; filename=" + orgFileName);
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Content-Length", "" + file.length());
orgFileName은 참조하도록 해주신 자바 소스를 가지고 작업을 했는데 ..
익스플러러와 파이어폭스는 한글명이 제대로 동작을 하는데
오페라와 크롬은 filedown.do식으로 파일명이 다운로드됩니다.
그리고 샘플 프로그램은 OPERA작동하지 않습니다.
다음은 request.getHeader("User-Agent");값입니다.
1)오페라 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 OPR/55.0.2994.37
2)크롬 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36
3)파이어폭스 Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
4)ie11 Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
response.setContentType("application/x-msdownload;charset=utf-8");
response.setHeader("Content-Disposition:", "attachment; filename=" + orgFileName);
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Content-Length", "" + file.length());
orgFileName은 참조하도록 해주신 자바 소스를 가지고 작업을 했는데 ..
익스플러러와 파이어폭스는 한글명이 제대로 동작을 하는데
오페라와 크롬은 filedown.do식으로 파일명이 다운로드됩니다.
그리고 샘플 프로그램은 OPERA작동하지 않습니다.
다음은 request.getHeader("User-Agent");값입니다.
1)오페라 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 OPR/55.0.2994.37
2)크롬 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36
3)파이어폭스 Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
4)ie11 Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
A
안녕하세요.
표준프레임워크센터 입니다.
파일명이 제대로 다운로드 되지 않는 이유는
브라우저별로 Content-Disposition의 값에 대한
인코딩 처리 방식에 약간의 차이가 있어서 입니다.
브라우저별로 문자열처리를 하셔야
정상적인 파일로 다운로드가 가능합니다.
다음은 예시로 참고하시기 바랍니다.
if (browser.equals("MSIE")) {
encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
} else if (browser.equals("Firefox")) {
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Opera")) {
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
공통컴포넌트 3.7을 센터에서
오페라 브라우저 환경으로
테스트 할시에는 정상적으로 동작하는것을 확인하였습니다.
업무는 뉴스관리로 테스트를 수행하였습니다.
다시 한번 확인 부탁드립니다.
감사합니다.
표준프레임워크센터 입니다.
파일명이 제대로 다운로드 되지 않는 이유는
브라우저별로 Content-Disposition의 값에 대한
인코딩 처리 방식에 약간의 차이가 있어서 입니다.
브라우저별로 문자열처리를 하셔야
정상적인 파일로 다운로드가 가능합니다.
다음은 예시로 참고하시기 바랍니다.
if (browser.equals("MSIE")) {
encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
} else if (browser.equals("Firefox")) {
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Opera")) {
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
공통컴포넌트 3.7을 센터에서
오페라 브라우저 환경으로
테스트 할시에는 정상적으로 동작하는것을 확인하였습니다.
업무는 뉴스관리로 테스트를 수행하였습니다.
다시 한번 확인 부탁드립니다.
감사합니다.