2014-05-14 203 views
1

我有一個應用程序,我想要打開一個在運行時打開並創建的JSP文件。我的問題是,如果我沒有固定的路徑,應該如何打開它。我如何知道它在哪裏以及如何在運行時打開它?如何在JSP中打開PDF文件?

+0

是否將它保存在項目路徑中?就像在web內容下一樣。 –

+0

是的。所有的pdf文件將有名稱模式,如「DS」+ ID +「否」。 –

回答

1

你可以使用servlet。

@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()); 
} 
} 

(如果Servlet的3.0不可用,那麼它在web.xml中通常的方式映射,如果Java 7的是不可用的,然後使用一個讀/寫循環通常的方式)

只是copypaste這個類全部加入到你的項目中,並通過/contextpath/Test.pdf而不是/contextpath/youroriginal.jsp打開所需的PDF文件(當然,它已經在一個包中組織並自動完成了必要的導入)。

E.g.如在JSP如下,你想顯示PDF內嵌:

<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

解決您的問題重新編寫鏈接線

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

但如果你真的想要的文件是在其他系統上訪問,除了服務器本身,你應該將你的文件移動到你的web目錄,然後使用相對路徑進行訪問