我想在web页面上实现一个能浏览服务器文件的功能,html的file标签只能浏览本地文件,请问怎样实现?只要能在页面上浏览到服务器上的文件都可以,我的文件是用FTP已经传到服务器上的,我只需要在页面上能把这个路径浏览出来就可以了,查了半天,还是不知道怎样实现,请大家多帮帮忙。先谢谢了分不够的话可加 ^v^

解决方案 »

  1.   

    sun.net.*;
    sun.net.ftp.*;
    com.enterprisedt.net.ftp.*;
    取回来对string进行处理吧
      

  2.   

    简单啊!
    1 用file 打开目录,然后把File读取出来
    2 循环显示整个目录的内容
    给你一段代码吧!注意,需要的package 你自己添加进去
    filelist.jsp<%@ page contentType="text/html;charset=GBK"%>
    <%@ page import="java.text.*"%>
    <%@ page import="java.io.*"%>
    <%@ page import="java.net.*"%>
    <%@ page import="java.math.*"%>
    <title>文件列表</title>
    <style type="text/css">
      tr {
        background-color:FFFFFF;
        font-size:12pt;
      }
    </style>
    <body>
    <%
      request.setCharacterEncoding("GBK");
      String filename = request.getParameter("filename");
      if (filename == null) {
        filename = config.getServletContext().getRealPath(".");
      }
      filename = new String(filename.getBytes("iso8859-1"), "GBK");
      File file = new File(filename);
      if (!file.isDirectory()) {
        out.println("不是目录,无法浏览!" + filename);
        return;
      }  File[] files = file.listFiles();
    %>
    <table class="sort-table" id="table-1" border=0 cellpadding="0" cellspacing="0">
      <col />
      <col />
      <col />
      <col />
      <col />
      <col />
      <thead>
        <tr class="title">
          <td>&nbsp;</td>
          <td>名称</td>
          <td>大小</td>
          <td>&nbsp;</td>
          <td>类型</td>
          <td>修改日期</td>
          <td>&nbsp;</td>
        </tr>
      </thead>
      <tbody>
        <%
          String path = file.getAbsolutePath();
          if (file.getParent() != null) {
        %>
        <tr>
          <td><img src="../images/upfolder.png" border=0></td>
          <td><a href="?filename=<%=file.getParent() %>">..</a></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
        </tr>
        <%
        }
        %>
        <%
          int number = 1;
          for (File f : files) {
        %>
        <tr class="<%=number%2==1?"odd":"even" %>" onMouseOver="lastCssClassName=this.className;this.className='over'"
          onMouseOut="this.className=lastCssClassName">
          <td>
          <%
                if (f.isDirectory()) {
                out.print("<img src=../images/folder.png border=0>");
              } else {
                out.print("&nbsp;");
              }
          %>
          </td>
          <td>
          <%
                if (f.isDirectory()) {
                out.print("<a href='?filename=" + path + "\\" + f.getName() + "'>");
                out.print(f.getName());
                out.print("</a>");
              } else {
                out.print("<a href='download.jsp?filename=" + path + "\\" + f.getName() + "\'>" + f.getName() + "</a>");
              }
          %>
          </td>
          <td align="right">
          <%
                if (!f.isDirectory()) {
                //    if(f.length()<1024*1024){
                out.println((f.length() + 1023) / 1024);
                //      }
                //else {
                //  out.println((f.length()+1024*1024)/1024/1024+" MB");
                //}
              }
          %>
          </td>
          <td><%=f.isDirectory() ? "" : "KB"%></td>
          <td>
          <%
                if (f.isDirectory()) {
                out.print("目录");
              } else {
                out.println("文件");
              }
          %>
          </td>
          <td><%=DateTools.toStringYMDHM(new Date(f.lastModified()))%></td>
          <td>
          <%
          if (!f.isDirectory() && f.length() < 1024 * 1024) {
          %><a href="edit.jsp?filename=<%=path+"\\"+f.getName()%>">编辑</a>
          <%
          }
          %>
          </td>
        </tr>
        <%
          number++;
          }
        %>
      </tbody>
    </table></body>