2012-12-20 162 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"); 
} 
%>