티스토리 뷰

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

...
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/05   »
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