2012-12-20 92 views
4

我有一些pdf文件保存在一些本地磁盤.. D:/ filesDir /,我想顯示該文件夾中的所有文件到我的jsp頁面&點擊一個特定的pdf文件,它應該打開位於pdf文件位於在D:/ filesDir /用戶點擊了..目前我有我的代碼如下。如何從jsp頁面打開文件?

<% 
String sourceDirectory = "D:\\filesDir\\"; 
File f = new File(sourceDirectory); 
String [] fileNames = f.list(); 
File [] fileObjects= f.listFiles(); 
%> 
<UL> 
<% 
for (int i = 0; i < fileObjects.length; i++) { 
if(!fileObjects[i].isDirectory()){ 
%> 
<LI> 
<A HREF="<%="D:/filesDir/"+fileNames[i] %>"><%= fileNames[i]%></A> 
&nbsp;&nbsp;&nbsp;&nbsp; 
(<%= Long.toString(fileObjects[i].length()) %> bytes long) 
<% 
} 
} 
%> 
</UL> 

從上面的代碼,我可以顯示來自FILESDIR夾中的所有我的PDF文件轉換爲我的jsp頁面,但在一個特定的PDF文件的點擊(爲前。abc.pdf),而不是去控制到D:/filesDir/abc.pdf,控制權將進入本地主機:8080/myapp/D:/filesDir/abc.pdf ...

如何消除特定於應用程序的路徑(即,locahlhost: 8080/myapp /)&從鏈接打開我的pdf文件?

+3

'文件重複這個問題:// d:/ FILEDIR的/ etc/etc',但它會停止工作當你的服務器和你的客戶端不在同一臺機器上的時候。 –

回答

2

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

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

,如果你真的想上也比服務器本身以外的其他系統訪問的文件,你應該將你的文件進入你的網絡目錄,然後使用相對路徑進行訪問

2

除非這是作業或練習,否則我會考慮現有的解決方案。我用的文件管理插件的CKEditor作爲獨立的解決方案來瀏覽服務器上的文件,它就像一個魅力:

這裏是主頁: http://labs.corefive.com/projects/filemanager/

這裏是鏈接來源: https://github.com/simogeo/Filemanager/tree/master/connectors/jsp

這是非常直接的適應現有的應用程序。只需下載,捏捏filemanager.config.js文件,這就是它:

enter image description here

0

試試下面的代碼。它適用於Chrome和IE。

<%@page import="java.io.File"%> 
<html> 
<body> 
    <% 
     String sourceDirectory = "D:\\books"; 
     File f = new File(sourceDirectory);  
     File[] fileObjects = f.listFiles(); 
    %> 
    <UL> 
     <% 
      for (int i = 0; i < fileObjects.length; i++) 
      { 
       if (!fileObjects[i].isDirectory()) 
       {%> 
        <LI><A HREF="file:\\\<%=fileObjects[i].getAbsolutePath()%>"><%=fileObjects[i].getName()%></A> 
         &nbsp;&nbsp;&nbsp;&nbsp; 
         (<%=Long.toString(fileObjects[i].length())%> bytes long) 
       <%} 
      }%> 
    </UL> 
</body> 
</html> 
+0

只有您的系統才能訪問所有文件。這些文件不能從其他系統訪問,因爲它會嘗試在用戶系統上查找文件。 –

+0

如果你想訪問其他系統中的文件,並將請求發送到一個servlet,其參數如fileName =「effectiveJava.pdf」,在servlet中獲取文件名在servlet中創建一個文件對象並在servlet中打開該文件。或者把這些文件放在你的webapp文件夾中,並且像圖像一樣爲特定的文件創建一個鏈接 –

0
<%@ page import="java.io.*"%> 
<% 
FileOutputStream out; 
try{ 
out = new FileOutputStream("C://Hello.txt"); 
new PrintStream(out).println ("All glitters are not gold"); 
out.close(); 
} 
catch (IOException e){ 
out.println ("Unable to write to file"); 
} 
%>