====== File Download 서비스 ====== ===== 개요 ===== 여기서 다운로드는 대개 큰 컴퓨터에서 작은 컴퓨터로 파일을 전송하는 것을 의미한다. 인터넷 사용자의 입장에서의 다운로드란 다른 컴퓨터에서 파일을 받는 것이다. ===== 설명 ===== EgovFrameWork에서는 파일 다운로드를 하기위한 DownloadController 클래스를 간단하게 구현하여 보았다. **DownloadController 클래스 예시** @Controller("downloadController") public class DownloadController { @Resource(name = "fileUploadProperties") Properties fileUploadProperties; @RequestMapping(value = "/download/downloadFile.do") public void downloadFile( @RequestParam(value = "requestedFile") String requestedFile, HttpServletResponse response) throws Exception { String uploadPath = fileUploadProperties .getProperty("file.upload.path"); File uFile = new File(uploadPath, requestedFile); int fSize = (int) uFile.length(); if (fSize > 0) { BufferedInputStream in = new BufferedInputStream( new FileInputStream(uFile)); // String mimetype = servletContext.getMimeType(requestedFile); String mimetype = "text/html"; response.setBufferSize(fSize);d response.setContentType(mimetype); response.setHeader("Content-Disposition", "attachment; filename=\"" + requestedFile + "\""); response.setContentLength(fSize); FileCopyUtils.copy(in, response.getOutputStream()); in.close(); response.getOutputStream().flush(); response.getOutputStream().close(); } else { //setContentType을 프로젝트 환경에 맞추어 변경 response.setContentType("application/x-msdownload"); PrintWriter printwriter = response.getWriter(); printwriter.println(""); printwriter.println("


Could not get file name:
" + requestedFile + "

"); printwriter .println("


Back

"); printwriter.println("


© webAccess"); printwriter.println(""); printwriter.flush(); printwriter.close(); } } }
jsp 페이지로 간단하게 구현된 예시 <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> Success

Success

All good

순번 :
uploadedFilePath :
파일명 :
파일사이즈 :

Tomcat에서는 일반적으로 웹 어플리케이션이 GET과 POST 방식으로 파라미터를 넘겨 받을 때 request.setCharacterEncoding()을 통한 문자셋 인코딩이 필요하다. 파일을 다운로드시 한글이 깨지는 문제가 발생할 경우 제우스나 WebLogic의 경우는 JSP 페이지에 아래와 같이 넣어주면 한글 깨지는 문제가 해결된다. <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> Tomcat에서는 한글이 깨지는 문제가 발생하는데 아래의 링크를 참조하기 바란다. *[[egovframework:rte:fdl:Tomcat 한글 설정하기]] ===== 참고 자료 =====