2014-05-14 2 views
1

런타임에 열고 작성된 JSP 파일을 열어 볼 응용 프로그램이 있습니다. 내 문제는 내가 그것의 고정 경로가없는 경우 그것을 여는 방법입니다. 런타임이 어디인지 어떻게 열지 어떻게 알 수 있습니까?JSP로 PDF 파일을 여는 방법은 무엇입니까?

+0

은 웹 내용과 마찬가지로 프로젝트 경로에 저장합니다. –

+0

예. 모든 pdf 파일에는 "DS"+ id + "No"와 같은 이름 패턴이 있습니다. –

답변

1

서블릿을 사용할 수 있습니다.

@WebServlet("/Test.pdf") 
public class PdfServlet extends HttpServlet { 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
File file = new File("D:\\Test\\Test.pdf"); 
response.setHeader("Content-Type", getServletContext().getMimeType(file.getName())); 
response.setHeader("Content-Length", String.valueOf(file.length())); 
response.setHeader("Content-Disposition", "inline; filename=\"Test.pdf\""); 
    Files.copy(file.toPath(), response.getOutputStream()); 
} 
} 

(서블릿 3.0을 사용할 수없는 경우, 자바 7을 사용할 수없는 경우 다음 web.xml의 일반적인 방법을 매핑 한 후 읽기/쓰기 루프를 일반적인 방법을 사용)

단지의 CopyPaste에 이 클래스를 프로젝트 전체에 적용하고 /contextpath/youroriginal.jsp 대신 /contextpath/Test.pdf를 사용하여 원하는 PDF 파일을 엽니 다 (패키지에서 구성하고 클래스에서 필요한 가져 오기를 자동 완성한 후).

예. 문제가

<A HREF="<%="file://D:/filesDir/"+fileNames[i] %>"><%= fileNames[i]%></A> 

로 연결 라인을 재 작성 해결할 수 있지만, 당신이 정말로 원하는 경우 파일로

<object data="${pageContext.request.contextPath}/Test.pdf" 
type="application/pdf" width="500" height="300"> 
<a href="${pageContext.request.contextPath}/Test.pdf">Download file.pdf</a> 
0

: JSP로 다음과 같이 어디는 PDF 인라인을 보여주고 싶습니다 서버 자체 이외의 다른 시스템에서도 액세스 할 수 있다면 파일을 웹 디렉토리로 이동 한 다음 상대 경로를 사용하여 액세스해야합니다.

관련 문제