4

我有一些pdf文件保存在某个本地磁盘中.. D:/filesDir/ ,我想将该文件夹中的所有文件显示到我的jsp页面中&单击特定的pdf文件时,它应该打开位于D中的pdf文件:/filesDir/ 用户点击了..目前我的代码如下所示。

<% 
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,控件将转到 localhost:8080/myapp/D:/filesDir/abc.pdf...

如何消除应用程序特定路径(即 locahlhost:8080/myapp/)并从链接中打开我的 pdf 文件?

4

4 回答 4

2

解决您的问题将链接行重写为

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

但是,如果您确实希望在服务器本身以外的其他系统上访问文件,则应将文件移动到 Web 目录中,然后使用相对路径进行访问

于 2012-12-20T04:31:52.527 回答
2

除非这是家庭作业或练习,否则我会研究现有的解决方案。我已经将 CKEditor 的 FileManager 插件用作浏览服务器中文件的独立解决方案,它的工作原理就像一个魅力:

这是主页: http: //labs.corefive.com/projects/filemanager/

这是源代码的链接: https ://github.com/simogeo/Filemanager/tree/master/connectors/jsp

适应现有应用程序非常简单。只需下载并调整 filemanager.config.js 文件即可:

在此处输入图像描述

于 2012-12-20T04:36:22.120 回答
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");
}
%>
于 2013-01-01T13:16:23.290 回答
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>
于 2012-12-20T04:52:48.687 回答