앱스트랩트뷰
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | package org.yht.kdh; import java.io.File; import java.io.FileInputStream; import java.io.OutputStream; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.util.FileCopyUtils; import org.springframework.web.servlet.view.AbstractView; public class DownloadView extends AbstractView { public DownloadView() { setContentType("applicaiton/download;charset=utf-8"); } @Override protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { File file = (File) model.get("downloadFile"); response.setContentType(getContentType()); response.setContentLength((int)file.length()); String fileName = java.net.URLEncoder.encode(file.getName(), "UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=\""+fileName+"\";"); response.setHeader("Content-Transfer-Encoding", "binary"); OutputStream out = response.getOutputStream(); FileInputStream fis = null; try { fis = new FileInputStream(file); FileCopyUtils.copy(fis, out); } catch (Exception e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (Exception e2) {}} } out.flush(); } } | cs |
서블렛컨텍스트.xml
1 2 3 4 5 | <beans:bean class="org.springframework.web.servlet.view.BeanNameViewResolver"> <beans:property name="order" value="0" /> </beans:bean> <beans:bean id="download" class="org.yht.kdh.DownloadView" /> | cs |
컨트롤러
1 2 3 4 5 6 7 | @RequestMapping("/download.do") public ModelAndView download(HttpServletRequest request)throws Exception{ String temp=request.getSession().getServletContext().getRealPath("/resources"); File down = new File(temp+"\\sample.txt"); return new ModelAndView("download","downloadFile",down); } | cs |
'DEV > Spring&Java' 카테고리의 다른 글
Jsch 원격SSH접속 커맨드 실행 (0) | 2020.02.11 |
---|---|
파일 전송중인지 체크 (0) | 2019.10.24 |
Spring logback 설정 (0) | 2018.10.10 |
Spring Iterator (0) | 2018.10.05 |
Spring 인터셉터 Intercepter (0) | 2018.10.05 |