日期:2014-05-20  浏览次数:20649 次

jsp访问文件目录的问题
用JSP写了个超链接 点击后自动打开文件
我现在只能做到把源文件放到工程的根目录下面,即webroot下面才能访问
例如文件路径是http://localhost:8080/web123/a.txt
我想通过设置把源文件放到磁盘的任意位置,就能访问,请问我该怎么做呢?
不只是本机访问,还可以远程访问
链接的源码是:
 String _dname = d.get("path"); 
  _dname = _dname.replaceAll("F:\\\\","");
  _dname = _dname.replace('\\','/');
  _dname = "http://localhost:8080/web123/"+_dname;
  %>
   
  <tr>
<td><%=i+1 %></td>
<td><a href="<%=_dname %>" ><%=_dname %></a></td>
  </tr>

------解决方案--------------------
你如果是在本地访问远程服务器上的某个文件资源,现在你访问的时候是通过部署到服务上某个应用来访问的,这个应用所允许你可以直接访问的范围就在webroot目录下,直接指定一个路径就可以了,因为这个路径下的资源它是可以进行读写操作的,指定一个路径,servlet的API可以通过这个路径找到那个文件然后调用IO给你写过去,但要是在服务器的其它目录下了,你再给它传个路径,那个servlet的API在它可控的范围下(webroot)就找不到这个文件了,这个时候你只能自己调用IO把这个文件写过去,这就类似于文件的下载了,而且前台的连接你要把访问的文件的名字传过来,这个服务器端才能通过文件名在服务器的磁盘目录下找到对应的文件
但是你又不是进行文件的下载操作,所以没有必要把文件放到服务器的其它磁盘目录下,自己来对访问的文件进行读写操作,不自己来处理IO操作,你是访问不到的