[JSP] JSP로 서버에 올라가 있는 PDF파일 바로 열기
2020. 11. 29. 00:29ㆍ프론트엔드/JSP
728x90
서버경로에 pdf파일이 업로드 되어 있을 때, 해당 경로에 있는 pdf파일을 jsp에서 바로 여는 방법
test.jsp 호출시 설정한 경로내에 있는 pdf파일을 바로 오픈
<!--test.jsp-->
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.FileInputStream" %>
<%@ page import="java.io.BufferedOutputStream" %>
<%@ page import="java.io.File" %>
<%@ page import="java.io.IOException" %>
<%
FileInputStream fis = null;
BufferedOutputStream bos = null;
//아래 두줄의 초기화 코드를 넣지 않으면 'java.lang.IllegalStateException' 발생
out.clear();
out = pageContext.pushBody();
try{
//여기서 역슬래시 하나만 사용할 경우 에러 발생
String fileName = "이클립스서버경로\\abc.pdf";
File file = new File(fileName);
// 보여주기
response.setContentType("application/pdf");
response.setHeader("Content-Description", "JSP Generated Data");
// 다운로드
//response.addHeader("Content-Disposition", "attachment; filename = " + file.getName() + ".pdf");
fis = new FileInputStream(file);
int size = fis.available();
byte[] buf = new byte[size];
int readCount = fis.read(buf);
response.flushBuffer();
bos = new BufferedOutputStream(response.getOutputStream());
bos.write(buf, 0, readCount);
bos.flush();
} catch(Exception e) {
response.setContentType("text/html;charset=euc-kr");
out.println("<script language='javascript'>");
out.println("alert('파일 오픈 중 오류가 발생하였습니다.');");
out.println("</script>");
e.printStackTrace();
} finally{
try{
if(fis != null) fis.close();
if(bos != null) bos.close();
} catch(IOException e){
e.printStackTrace();
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
만약 특정 jsp에서 버튼을 클릭시 pdf파일을 읽는 JSP를 열고 싶다면 javascript 'window.open()' 사용하여 'test.jsp'열기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="asset/jQuery/jquery-1.12.4.min.js"></script>
<script src="asset/js/index.js"></script>
</head>
<script>
$(function(){
$pdfOpen = $('#pdfOpen'),
$pdfOpen.click(function(){
window.open('test.jsp');
});
})
</script>
<button id="pdfOpen">pdf열기</button>
</body>
</html>
728x90
'프론트엔드 > JSP' 카테고리의 다른 글
[JSP] include 사용방법 (0) | 2020.12.16 |
---|---|
[JSP] JSP페이지에서 다운로드 구현시 Exception 발생 (0) | 2020.11.29 |
[JSP] JSP 스크립틀릿 태그 내에 경로 작성시 에러 (0) | 2020.11.29 |