티스토리 뷰

파일 다운로드 시 보통 다음과 같은 로직을 구현한다. 

...
response.reset();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\";");
response.setHeader("Content-Length", String.valueOf(destFile != null ? destFile.length() : 0));
...

이렇게 했을 때 4번째줄에 나오는 fileName은 클라이언트로부터 넘어온 파일의 정보 중 파일이름이다. 

파일 이름을 추출하여 Content-Disposition 값으로 그대로 넣으면 한글 파일이라면 깨진 파일이름으로 다운이 된다. 

이 경우에는 다음과 같이 fileName을 인코딩 처리 해줘야 한다. 

fileName = URLEncoder.encode(fileName, "UTF-8");

이렇게 했을때 정상적으로 출력이 되는것을 확인할 수 있다. 

 

끝!

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31