0

假设我已经创建了文件

String path = application.getRealPath("userSearchFolder");
String name = path + "/" + (String) session.getAttribute("username") + ".xml";
File file = new File(name);

稍后我想将其作为链接提供,例如

 <a href"<%=file.toURI()%>">File</a>

会发生什么是我得到目录路径而不是 url 路径 ->

file:/D:/Documents/NetBeansProjects/2012/GATE_Project/build/web/userSearchFolder/mjoraid.txt.xml

当它到达 Firefox 时,我将鼠标悬停在链接上,我看到的是

file:///D:/Documents/NetBeansProjects/2012/GATE_Project/build/web/userSearchFolder/mjoraid.xml

当我右键单击并选择复制链接位置并将其粘贴到 URL 中时,会打开 xml 文件,但是当我单击链接时,没有任何反应。

我怎么能得到这样的链接

http://localhost:8080/GATE_Project/somepage/somepage/mjoraid.xml
4

3 回答 3

1

The getRealPath will give a File system path (hence "real"), as opposed to web app path. So you cannot make it a href.

The following should suffice.

<a href="/userSearchFolder/${userName}.xml">

(Of course you are risking data mining for such public accessible XML files.)

于 2012-06-08T21:57:15.570 回答
0

好的,我是手动完成的,类似于我以前在 php 中的操作,创建一个包含网站主目录的变量。

  String searchFolderURL = "http://localhost:8080/GATE_Project/userSearchFolder/"; 

接着

 <a href="<%=searchFolderURL + file.getName()%>" target="_blank"  >See original txt File </a>

谢谢顺便说一句。

于 2012-06-09T12:08:18.660 回答
0

您可以使用 servlet 来提供文件。

教程展示了如何提供 pdf 文件(!)

理论是一样的:

  • 您在 servlet 中加载文件
  • 设置任何必需的标题
  • 将数据写入响应

ContentType 应该是“application/xml”。

于 2012-06-08T22:08:06.450 回答