我有一些pdf文件保存在一些本地磁盘上.. D:/ filesDir /,我想将该文件夹中的所有文件显示到我的jsp页面&点击特定的pdf文件,它应该打开位于用户点击的D:/ filesDir /的pdf文件..目前我的代码如下所示。
<%
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>
(<%= 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 /)&amp;从链接打开我的pdf文件??
答案 0 :(得分:2)
解决您的问题重新编写链接行
<A HREF="<%="file://D:/filesDir/"+fileNames[i] %>"><%= fileNames[i]%></A>
但是如果您真的希望在其他系统上访问文件以及服务器本身以外的其他系统,您应该将文件移动到您的Web目录中,然后使用相对路径进行访问
答案 1 :(得分:2)
除非这是家庭作业或练习,否则我会研究现有的解决方案。我已经将CKEditor的FileManager插件用作浏览服务器中文件的独立解决方案,它就像一个魅力:
这是主页: http://labs.corefive.com/projects/filemanager/
以下是该来源的链接: https://github.com/simogeo/Filemanager/tree/master/connectors/jsp
适应现有应用程序非常简单。只需下载,调整filemanager.config.js文件就可以了:
答案 2 :(得分: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>
(<%=Long.toString(fileObjects[i].length())%> bytes long)
<%}
}%>
</UL>
</body>
</html>
答案 3 :(得分:0)
这是您必须在此链接上重复提出的问题
答案 4 :(得分: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");
}
%>