아래 샘플을 참고 하자.


/**
 * 파일 명 생성
 *
 * @param fileName
 * @param request HttpServletRequest
 * @param response HttpServletResponse
 * @throws UnsupportedEncodingException
 */
private void setDownloadFileName(String fileName, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
    fileName = URLEncoder.encode(fileName, "utf-8").replaceAll("\\+", "%20");

    if (logger.isDebugEnabled()) {
        logger.debug("fileName: " + fileName);
    }

    response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\";");
    response.setHeader("Content-Transfer-Encoding", "binary");
}


URLEncoder 를 사용하여 encode 한다. 파일 다운로드 시 공백이 + 로 표현 되기 때문에 replaceAll 을 사용하여 추가로 변환 하면 해결 된다.


참고 사이트


+ Recent posts