免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2367 | 回复: 4
打印 上一主题 下一主题

读取目录时能打开目录链接,却打不开文件链接? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-07 20:15 |只看该作者 |倒序浏览

一个能读取文件目录的jsp文件,代码如下。能读取服务器上的指定目录,但却不能打开文件。
如果用localhost来访问则可以,但用内部ip来访问则无法打开文件的链接,不能右键另存为,而目录则可以继续访问,请各位帮着看一下什么原因吧,谢谢了。



  1. <%@ page contentType="text/html; charset=GBK" language="java" import="java.sql.*" errorPage="" pageEncoding="GBK"%>
  2. <%
  3. request.setCharacterEncoding("GBK");
  4. response.setCharacterEncoding("GBK");
  5. response.setContentType("text/html; charset=GBK");
  6. %>
  7. <%!
  8. public String getStrCn(String str)
  9. {
  10.      try{
  11.         String temp_p=str;
  12.         byte[] temp_t=temp_p.getBytes("ISO-8859-1");
  13.         String temp=new String(temp_t,"GBK");
  14.         return temp;
  15.     }catch(Exception e){    }
  16.     return "null";
  17. }
  18. %>
  19. <%@page import="java.io.*"%>
  20. <%
  21. String path ="/";
  22. if(request.getParameter("path")!=null)
  23. {
  24. path = getStrCn(request.getParameter("path").trim());
  25. }
  26. File f = new File(path);

  27. if (!f.exists())
  28. {
  29.         out.println(path+" not exists");
  30.         return;
  31. }


  32. File fa[] = f.listFiles();
  33. for(int i=0;i<fa.length;i++)
  34. {
  35.         File fs = fa[i];
  36.         if (fs.isDirectory())
  37.         {
  38.                 out.print("<font class=\"dir1\">[目录]</font><a href=\"readfolderQA.jsp?path="+fs.getAbsolutePath()+"\" class=\"dirlink\" title=\"最后修改时间:"+fs.lastModified()+" \r\n文件大小:"+fs.length()+" bytes"+"\r\n是否可写:"+fs.canWrite()+"\">");
  39.                 out.println(""+fs.getName()+"");
  40.                 out.print("</a><br>");
  41.         }else{
  42.               out.print("<font class=\"file1\">[文件]</font><a href=\""+fs.getAbsolutePath()+"\" target=\"_blank\" title=\"最后修改时间:"+fs.lastModified()+" \r\n文件大小:"+fs.length()+"bytes\r\n是否可写:"+fs.canWrite()+"\">");                   
  43.               out.println(fs.getName());
  44.                      out.print("</a><br>");
  45.         }
  46. }
  47. %>

复制代码

论坛徽章:
0
2 [报告]
发表于 2005-12-07 21:10 |只看该作者
请问 lz “能读取服务器上的指定目录,但却不能打开文件”

"不能打开文件" 是 什么意思?

论坛徽章:
0
3 [报告]
发表于 2005-12-08 10:22 |只看该作者
不能打开文件就是给文件一个链接。想直接打开它,或右键能另存为。
但发现文件的的链接是href=\""+fs.getAbsolutePath()+"\"就打不开链接,而目录则可以。

可能是没有要限的原因,路径被当作本地的路径了。
但我想通过访问服务器的这个jsp文件查看服务器指定目录的下全部目录和文件,然后可以查看具体的文件。
现在能列出全部的目录及文件,目录可以点击,但文件却不行。

可试下上面的代码。。。在服务器上用localhost来访问就一切都行,但换成ip就不行了。

论坛徽章:
0
4 [报告]
发表于 2005-12-09 10:14 |只看该作者
有什么好的方法吗?

原因是在其他主机上不能打开服务器的本地文件,因为页面上给出的是本地路径。
有没有可能编写一个jsp或者servlet,本地文件的路径作为参数,当用户单击连接时,由jsp或者servlet读取文件返回给浏览器。 这时像打开普通文件一样呢?

论坛徽章:
0
5 [报告]
发表于 2005-12-09 19:19 |只看该作者
fs.getAbsolutePath()
这是取得绝对路径,但是在BS模式下,客户端取得服务器端的绝对路径不能这样用
可以试试
request.getRealPath(String path)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP