스프링 MVC 구조를 기반의 내용입니다.
/**
* file steam controller
*
*/
@RequestMapping("/요청")
public void getFileController(HttpServletResponse resp, HttpSevletRequest req){
try{
String fileRealPath =
req.getSession().getServletContext()
.getRealPath("/static/doc/xxx.pdf");
File file = new File(fileRealPath);
resp.setHeader("Content-Type", "application/pdf");
resp.setHeader("Content-Length", String.valueOf(file.length()));
//기본값(생략가능) 브라우저에서 파일이 열림
resp.setHeader("Content-Disposition", "inline");
//파일이 다운 받아짐
resp.setHeader("Content-Disposition", "attachment");
//파일명 설정 (옵션)
resp.setHeader("filename", "xxx.pdf");
Files.copy(file.toPath(), resp.getOutputStream());
} catch (IOException e) {
//예외처리
}
}
보다 좋은 코드 방안이 있으신분은 공유해주시면 감사하겠습니다 :)