⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filemanager.jsp

📁 jsp文件管理系统
💻 JSP
📖 第 1 页 / 共 3 页
字号:
  request.setAttribute("dir", null);
  File ef = new File(request.getParameter("editfile"));
  BufferedReader reader = new BufferedReader(new FileReader(ef),encoding);
  String disable = "";
  if (!ef.canWrite()) disable = "无法打开文件";
  out.print("<form action=\""+browser_name+"\" method=\"Post\">\n"+
              "<textarea name=\"text\" wrap=\"off\" cols=\""+
              EDITFIELD_COLS+"\" rows=\""+EDITFIELD_ROWS+"\""+">"+disable);

  String c;
  while ((c =reader.readLine())!=null){
    c=substr(c,"&", "&amp;");
    c=substr(c,"<", "&lt;");
    c=substr(c,">", "&gt;");
    c=substr(c,"\"", "&quot;");
    out.print(c+"\n");
  }
  reader.close();
%></textarea>
  <input type="hidden" name="nfile" value="<%= request.getParameter("editfile")%>">
  <table><tr>
  <td title="Enter the new filename"><input type="text" name="new_name" value="<%=ef.getName()%>"></td>
  <td><input type="Submit" name="Submit" value="保存"></td>
  <td><input type="Submit" name="Submit" value="取消"></td></tr>
  <tr><td><input type="checkbox" name="Backup" checked>覆写</td></tr>
  </table>
  </form>
  </body>
</html>
<%
}
//保存文件
else if (request.getParameter("nfile")!=null){
  File f = new File(request.getParameter("nfile"));
  File new_f = new File(getDir(f.getParent(), request.getParameter("new_name")));
  if (request.getParameter("Submit").equals("Save")){
    if (new_f.exists()&&request.getParameter("Backup")!=null){
      File bak = new File(new_f.getAbsolutePath()+".bak");
      bak.delete();
      new_f.renameTo(bak);
    }
    BufferedWriter outs = new BufferedWriter(new FileWriter(new_f));
    outs.write(request.getParameter("text"));
    outs.flush();
    outs.close();
  }
  request.setAttribute("dir", f.getParent());
}
//删除文件
else if ((request.getParameter("Submit")!=null)&&(request.getParameter("Submit").equals("Delete Files"))){
  Vector v = expandFileList(request.getParameterValues("selfile"), true);
  boolean error = false;
  for (int i=v.size()-1;i>=0;i--){
    File f = (File)v.get(i);
    if (!f.canWrite()||!f.delete()){
      request.setAttribute("message", "无法删除文件"+f.getAbsolutePath()+". 删除失败");
      error = true;
      break;
    }
  }
  if ((!error)&&(v.size()>1)) request.setAttribute("message", "All files deleted");
  else if ((!error)&&(v.size()>0)) request.setAttribute("message", "File deleted");
  else if (!error) request.setAttribute("message", "No files selected");
}
//建新目录
else if ((request.getParameter("Submit")!=null)&&(request.getParameter("Submit").equals("Create Dir"))){
  String dir = ""+request.getAttribute("dir");
  String dir_name = request.getParameter("cr_dir");
  String new_dir = getDir (dir, dir_name);
  if (new File(new_dir).mkdirs()){
    request.setAttribute("message", "目录创建完成");
  }
  else request.setAttribute("message", "创建新目录"+new_dir+"失败");
}
//创建文件
else if ((request.getParameter("Submit")!=null)&&(request.getParameter("Submit").equals("Create File"))){
  String dir = ""+request.getAttribute("dir");
  String file_name = request.getParameter("cr_dir");
  String new_file = getDir (dir, file_name);
  //Test, if file_name is empty
  if ((file_name.trim()!="")&&!file_name.endsWith(File.separator)){
    if (new File(new_file).createNewFile()) request.setAttribute("message", "文件成功创建");
    else request.setAttribute("message", "创建文件"+new_file+"失败");
  }
  else request.setAttribute("message", "错误: "+file_name+"文件不存在");
}
//转移文件
else if ((request.getParameter("Submit")!=null)&&(request.getParameter("Submit").equals("Move Files"))){
  Vector v = expandFileList(request.getParameterValues("selfile"), true);
  String dir = ""+request.getAttribute("dir");
  String dir_name = request.getParameter("cr_dir");
  String new_dir = getDir(dir, dir_name);
  boolean error = false;
  if (!new_dir.endsWith(File.separator)) new_dir+=File.separator;
  for (int i=v.size()-1;i>=0;i--){
    File f = (File)v.get(i);
    if (!f.canWrite()||!f.renameTo(new File(new_dir+f.getAbsolutePath().substring(dir.length())))){
      request.setAttribute("message", "不能转移"+f.getAbsolutePath()+".转移失败");
      error = true;
      break;
    }
  }
  if ((!error)&&(v.size()>1)) request.setAttribute("message", "全部文件转移成功");
  else if ((!error)&&(v.size()>0)) request.setAttribute("message", "文件转移成功");
  else if (!error) request.setAttribute("message", "请选择文件");
}
//复制文件
else if ((request.getParameter("Submit")!=null)&&(request.getParameter("Submit").equals("Copy Files"))){
  Vector v = expandFileList(request.getParameterValues("selfile"), true);
  String dir = (String)request.getAttribute("dir");
  if (!dir.endsWith(File.separator)) dir+=File.separator;
  String dir_name = request.getParameter("cr_dir");
  String new_dir = getDir(dir, dir_name);
  boolean error = false;
  if (!new_dir.endsWith(File.separator)) new_dir+=File.separator;
  byte buffer[] = new byte[0xffff];
  try{
    for (int i=0;i<v.size();i++){
      File f_old = (File)v.get(i);
      File f_new = new File(new_dir+f_old.getAbsolutePath().substring(dir.length()));
      if (f_old.isDirectory()) f_new.mkdirs();
      else if (!f_new.exists()){
        InputStream fis = new FileInputStream (f_old);
        OutputStream fos = new FileOutputStream (f_new);
        int b;
        while((b=fis.read(buffer))!=-1) fos.write(buffer, 0, b);
        fis.close();
        fos.close();
      }
      else{
        //文件存在
        request.setAttribute("message", "无法复制"+f_old.getAbsolutePath()+",文件已经存在,复制失败");
        error = true;
        break;
      }
    }
  }
  catch (IOException e){
    request.setAttribute("message", "错误"+e+".复制取消");
    error = true;
  }
  if ((!error)&&(v.size()>1)) request.setAttribute("message", "全部文件复制成功");
  else if ((!error)&&(v.size()>0)) request.setAttribute("message", "文件复制成功");
  else if (!error) request.setAttribute("message", "请选择文件");
}
//目录浏览
if ((request.getAttribute("dir")!=null)){
%>
<title>JSP文件管理器-目录浏览:<%=request.getAttribute("dir")%></title>
</head>
<body>

<tr><td>
<% if (request.getAttribute("message")!=null){
  out.println("<table border=\"0\" width=\"100%\"><tr><td bgcolor=\"#FFFF00\" align=\"center\">");
  out.println(request.getAttribute("message"));
  out.println("</td></tr></table>");
}
%>
<form action="<%= browser_name %>" method="Post">
<table border="1" cellpadding="1" cellspacing="0" width="100%">
<%
  String dir = URLEncoder.encode(""+request.getAttribute("dir"));
  String cmd = browser_name+"?dir="+dir;
  out.println("<th bgcolor=\"#c0c0c0\"></th><th title=\"按文件名称排序\" bgcolor=\"#c0c0c0\"><a href=\""+cmd+"&sort=1\">文件名</a></th>"+
  "<th title=\"按大小称排序\" bgcolor=\"#c0c0c0\"><a href=\""+cmd+"&sort=2\">大小</th>"+
  "<th title=\"按日期称排序\" bgcolor=\"#c0c0c0\"><a href=\""+cmd+"&sort=3\">日期</th>"+
  "<th bgcolor=\"#c0c0c0\">&nbsp;</th><th bgcolor=\"#c0c0c0\">&nbsp;</th>");
  char trenner=File.separatorChar;
  File f=new File(""+request.getAttribute("dir"));
  //跟或者分区
  File[] entry=File.listRoots();
  for (int i=0;i<entry.length;i++){
    out.println("<tr bgcolor='#ffffff'\">");
    out.println("<td>※切换到相应盘符:<span style=\"background-color: rgb(255,255,255);color:rgb(255,0,0)\">");
    String name = URLEncoder.encode(entry[i].getAbsolutePath());
    String buf = entry[i].getAbsolutePath();
    out.println("◎<a href=\""+browser_name+"?dir="+name+"\">["+buf+"]</a>");
    out.println("</td></tr>");

  }
  out.println("<br>");
  //..
  if (f.getParent()!=null){
    out.println("<tr bgcolor='#ffffff' onmouseover=\"this.style.backgroundColor = '#eeeeee'\" onmouseout=\"this.style.backgroundColor = '#ffffff'\">");
    out.println("<td></td><td>");
    out.println("<a href=\""+browser_name+"?dir="+URLEncoder.encode(f.getParent())+"\">[..]</a>");
    out.println("</td></tr>");
  }
  //文件和目录
  entry=f.listFiles();
  if (entry!=null&&entry.length>0){
    int mode=1;
    if (request.getParameter("sort")!=null) mode = Integer.parseInt(request.getParameter("sort"));
    Arrays.sort(entry, new FileComp(mode));
    String ahref = "<a onmousedown=\"javascript:dis();\" href=\"";
    for (int i=0;i<entry.length;i++){
      String name = URLEncoder.encode(entry[i].getAbsolutePath());
      String link;
      String dlink = "&nbsp;";
      String elink = "&nbsp;";
      String buf = entry[i].getName();
      if (entry[i].isDirectory()){
        if (entry[i].canRead())
          link = ahref+browser_name+"?dir="+name+"\">["+buf+"]</a>";
        else
          link = "["+buf+"]";
      }
      else{
          if (entry[i].canRead()){
            if (entry[i].canWrite()){
              link=ahref+browser_name+"?file="+name+"\">"+buf+"</a>";
              dlink=ahref+browser_name+"?downfile="+name+"\">下载</a>";
              elink=ahref+browser_name+"?editfile="+name+"\">编辑</a>";
            }
            else{
              link=ahref+browser_name+"?file="+name+"\"><i>"+buf+"</i></a>";
              dlink=ahref+browser_name+"?downfile="+name+"\">下载</a>";
              elink=ahref+browser_name+"?editfile="+name+"\">查看</a>";
            }
          }
          else{
            link = buf;
          }
      }
      String date = DateFormat.getDateTimeInstance().format(new Date(entry[i].lastModified()));
      out.println("<tr bgcolor='#ffffff' onmouseup = \"javascript:selrow(this, 2);\" "+
                  "onmouseover=\"javascript:selrow(this, 0);\" onmouseout=\"javascript:selrow(this, 1);\">");
      out.println("<td><input type=\"checkbox\" name=\"selfile\" value=\""+name+"\" onmousedown=\"javascript:dis();\"></td>");
      out.println("<td>"+link+"</td><td align=\"right\">"+entry[i].length()+
                  " bytes</td><td align=\"right\">"+
                  date+"</td><td>"
                  +dlink+"</td><td>"+elink+"</td></tr>");
      }
  }
%>
</table>
<table>
<input type="hidden" name="dir" value="<%=request.getAttribute("dir")%>">
<tr>
<td title="把所选文件打包下载"><input class="button" type="Submit" name="Submit" value="Save as zip"></td>
<td colspan="2" title="删除所选文件和文件夹"><input class="button" type="Submit" name="Submit" value="Delete Files"></td></tr>
<tr>
<td><input type="text" name="cr_dir"></td>
<td><input class="button" type="Submit" name="Submit" value="Create Dir"></td>
<td><input class="button" type="Submit" name="Submit" value="Create File"></td>
<td><input class="button" type="Submit" name="Submit" value="Move Files"></td>
<td><input class="button" type="Submit" name="Submit" value="Copy Files"></td></tr>
</table>
</form>

<form action="<%= browser_name %>" enctype="multipart/form-data" method="POST">
<table cellpadding="0">
<tr>
<td><input type="hidden" name="dir" value="<%=request.getAttribute("dir")%>">
<input type="file" name="myFile"></td>
<td><input type="Submit" class="button" name="Submit" value="Upload"></td>
</tr>
</table>
</form>
<hr>
<center><small>JSP 文件管理器 v1.001 By Bagheera<a href="http://jmmm.com">http://jmmm.com</a>
</small></center>
</body>
</html>
<%
}
%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -