본문 바로가기
JAVA

첨부파일 다운로드 시 공백이 '+' 되는 현상

by IT History 2021. 12. 13.
728x90
반응형

JAVA 개발 후 첨부파일을 다운로드 할 경우 공백이 '+' 로 바뀌어 다운로드되는 현상이 있습니다.

예를들어 "첨부파일 다운로드 테스트.rtf"라는 파일이라면 "첨부파일+다운로드+테스트.rtf"라는 파일로 저장이 됩니다.

원인은 한글 파일명을 지원히기 위해 URLEncoder를 사용하는데 이 함수가 공백을 '+'로 만듭니다.

 String fileName = "첨부파일 다운로드 테스트.rtf";
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8") + ";");

 

'+'기호를 개선하는 방법은 URLEncoding 후 '+'로 변경된 공백을 '%20' 으로 다시 변경합니다.

'+'는 정규식의 수량을 나타내는 것이기 때문에 역슬래쉬가 앞에 붙어야 합니다.

공백 '+' 없애기
String fileName = "첨부파일 다운로드 테스트.rtf";
	   fileName = URLEncoder.encode(fileName, "UTF-8");
	   fileName = fileName.replaceAll("\\+", "%20");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";");

 

728x90
반응형

'JAVA' 카테고리의 다른 글

JAVA 무한루프  (0) 2022.06.22
이클립스 Branches/Tag 활용하기  (0) 2022.05.10
The method getTextContent() is undefined for the type  (0) 2021.11.25
아파치 POI 이미지 삽입  (0) 2021.11.25
아파치 POI 페이지나누기  (0) 2021.11.24

댓글