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

📄 jsp在线文件管理.txt

📁 文章管理系统。我看着上少 这个就添加一个。算是资源共享把
💻 TXT
📖 第 1 页 / 共 3 页
字号:
JSP单页面网站文件管理器 

这个文件的开发的设计思想是这样的。有的web 网站,或者B/S 软件的客户,在软件的安装调试阶段,往往对某些细节有特殊要求,也许,是字体的调整,也许是界面方面的小改动意见。面对这样的情况,如果用户没有开放FTP 功能,则开发和维护人员往往就必须亲临现场做一些很小的调试工作。

即浪费了时间,也浪费了人力物力。

在这样的情况下,我开发了这个具有文件管理功能的 JSP 单页面文件。它提供了文件夹的新增,更名,删除;文件的修改,更名,删除和上传的功能。基本能满足在软件的安装调试阶段,小的修改工作。

为了安全原因,该JSP 页面提供了简单的用户登陆功能。

使用前,把该文件置于网站文件,或者B/S 产品的任意目录下。开放文件安装目录的 读写 操作权限。用户远程登陆该JSP 页面,就可以行使管理功能。当安装维护阶段结束以后,请修改文件安装目录的 读写 权限,并删除该文件,以免留下安全隐患。

缺省,登陆用户名为:admin 密码为:oddworld

开发环境 jakarta-tomcat-4.0.3.exe 

注意:因为本软件的上传文件功能必须有 smartupload 组件支持。请把smartupload 置于tomcat 对应文件夹web-inf 下。如果你支持上传的组件有所不同,请自行调整。

简要开发说明:因为本文件并不复杂,加上本人自我感觉,文档说明虽然不规范,却也详细,所以只打算简要的关于一些小细节上做说明。

1. 本文件进行文件目录操作的时候,直接把目录当参数来传递,没有进行相应的转换。这是因为在 java 中, “\英文字符”有可能会被认为是转意字符,而引起在字符处理过程中出现无法预期的问题,所以我认为直接把目录来作为参数,在操作上比较合理。

2. 本文件在一些表单的提交方面,使用连接,而不是按钮,是因为 javascript 处理带 “\”的字符串时,也会有处理转意字符的可能,所以,为了防止这样的情况,所以传递目录参数的提交,都使用连接形式。

3. strStat,strErr 两个字符串,贯穿文件始终,前者为页面进行何种操作的判断命令,后者为在所有操作中出错的信息提示。

4. 本文件有可能引起的安全或者其它方面的纠纷,本人不做任何解释。我只是把该文件作为一个免费的工具提供给大家参考,使用。

----------------------------------------------------------------

文件内容 admin.jsp

<%-- oddWorld 网站文件管理系统(简体中文版) 2003年10月10日 
 copy right by joard Ast  
  
 admin.jsp 功能:网站文件后台管理页面。 
 --%> 
 <%@ page contentType="text/html;charset=gb2312" %> 
 <%@ page import="java.io.*" %> 
 <%@ page import="java.util.Date" %> 
 <%@ page import="com.jspsmart.upload.SmartUpload" %> 
 <%@ page import="javax.servlet.http.HttpSession" %> 
 <%@ page import="javax.servlet.http.HttpServletRequest" %> 
 <%@ page import="java.lang.reflect.*" %> 
  
<% //中文字符转换%> 
<%! 

public static String UnicodeToChinese(String s){ 
 try{ 
 if(s==null||s.equals("")) return ""; 
 String newstring=null; 
 newstring=new String(s.getBytes("ISO8859_1"),"gb2312"); 
 return newstring; 
 } 
 catch(UnsupportedEncodingException e) 
 { 
 return s; 
 } 
 } 

public static String ChineseToUnicode(String s){ 
 try{ 
 if(s==null||s.equals("")) return ""; 
 String newstring=null; 
 newstring=new String(s.getBytes("gb2312"),"ISO8859_1"); 
 return newstring; 
 } 
 catch(UnsupportedEncodingException e) 
 { 
 return s; 
 } 
} 
%> 
  
 <% 
 //刷新问题 
response.setHeader("Pragma","No-cache");  
response.setHeader("Cache-Control","no-cache");  
response.setDateHeader("Expires", 0); 

//自定义登陆用密码和用户名 
//正确的用户名 
String username="admin"  
//正确的密码 
String userpass="oddworld"; 

//得到系统路径 
ServletContext app=(ServletContext)pageContext.getServletContext(); 
String strSysPath = app.getRealPath("/"); 

//处理对象物理路径 
String strDealPath=""; 

//显示错误信息 
String strErr=""; 
//代表页面的显示状态,login 是显示登陆页面;show 是正常的显示文件信息;edit 是显示编辑文件的页面;editDo 是编辑文件的写入操作 

;createF 是显示创建文件夹的页面;createFDo 是创建文件夹的操作;renameFold 是显示更改文件夹名称的页面;renameFoldDo 是更改文 

件夹名称的操作;delFoldDo 是删除文件夹的操作;renameFile 是显示更改文件名称的页面;renameFileDo 是更改文件名称的操作; 

delFileDo 是删除文件的操作;uploadFile 是显示上传文件的页面;uploadFileDo 是上传文件的操作; 
String strStat="login"; 

//用于show 状态下显示文件的数组 
File[] fileArr=null; 

//根据传递的路径参数得到要处理对象的物理路径 
if (request.getParameter("path")==null || request.getParameter("path").equals("")){ 
 strDealPath=strSysPath; 
}else{ 
 //得到路径参数 
 strDealPath=UnicodeToChinese(request.getParameter("path")); 
} 

//检查session 的值是否存在,如果不存在着显示错误信息 
//HttpSession session = request.getSession(false); 
if (session.getValue("loginIn")==null || !session.getValue("loginIn").equals("pass")) 
{  
 strStat="login"; 
 strErr="你还没有登陆或者登陆超时,请重新登陆!"; 
} 

//创建file 对象,检查目录是否存在 
File myFile=new File(strDealPath); 

//检验文件夹是否存在  
if(!myFile.exists()){ 
 strErr="你选择的文件夹不存在,请重新选择!"; 
} 

//根据参数的不同,进行对应的操作 
if(request.getParameter("act")==null || request.getParameter("act").equals("") ||  

request.getParameter("act").equals("login")) 
{ 
 if(request.getParameter("username")!=null && request.getParameter("userpass")!=null) 
 { 
  
 //正确的经过MD5 加密的密码 
 //String userpass="OEEO99107DC8C1EE2E06666B965601EF"; 
  
 if(request.getParameter("username").equals(username) && (request.getParameter("userpass")).equals(userpass)) 
 { 
 session.putValue("loginIn","pass"); 
 response.sendRedirect(request.getRequestURI()+"?act=show"); 
 } 
 }  
 else { 
 strStat="login"; 
 strErr="你还没有登陆或者登陆超时,请重新登陆!"; 
 } 
}else if(request.getParameter("act").equals("show")){ 
 //缺省,页面正常显示文件的信息 statStat="show" 
 strStat="show"; 
  
 //创建文件列表数组 
 fileArr=myFile.listFiles(); 
  
}else if(request.getParameter("act").equals("edit")) 
{ 
 //编辑文件内容的页面 
 //根据是否有request.getParameter("file"),以及相应文件是否存在,如果有,则进行编辑操作,如果没有,则显示错误提示信息 
 if (!(request.getParameter("file")==null || request.getParameter("file").equals(""))){ 
  
 File fileEdit=new  

File(UnicodeToChinese(request.getParameter("path"))+UnicodeToChinese(request.getParameter("file"))); 
  
 if(fileEdit.exists()) 
 //文件编辑操作,实际就是更改页面的显示,用一个textarea 显示文件的信息,来做编辑 
 strStat="edit"; 
 else  
 //显示错误信息 
 strErr="你选择的文件不存在,请重新选择!"; 
  
 }else{ 
 strErr="你没有选择要编辑的文件,请重新选择!"; 
 } 
}else if(request.getParameter("act").equals("editDo")) 
{ 
 //把修改的内容写入文件,并且返回修改页面 
 if (!(request.getParameter("file")==null || request.getParameter("file").equals(""))) 
 {  
 File fileEdit=new  

File(UnicodeToChinese(request.getParameter("path"))+UnicodeToChinese(request.getParameter("file"))); 
  
 if(fileEdit.exists()) 
 {  
 //文件编辑操作,实际就是在修改文件内容以后,再于页面上用一个textarea 显示文件的内容,继续来做编辑或者 

查看修改的效果 
 if(!(request.getParameter("fileData")==null)) 
 {  
  
 try{ 
 PrintWriter pwEdit =null; 
 pwEdit=new PrintWriter(new  

FileOutputStream(UnicodeToChinese(request.getParameter("path"))+UnicodeToChinese(request.getParameter("file")))); 
 pwEdit.println(UnicodeToChinese(request.getParameter("fileData"))); 
 pwEdit.close(); 
  
 response.sendRedirect(request.getRequestURI()+"?path="+  

UnicodeToChinese(request.getParameter("path")) +"&file="+ UnicodeToChinese(request.getParameter("file")) +"&act=edit");  
 return; 
 }catch(Exception e){ 
 strErr="文件写入错误,请重新选择!"; 
 } 
 }else{ 
 strErr="缺少修改文件内容的参数,请重新选择!"; 
 } 
 }else  
 //显示错误信息 
 strErr="你选择的文件不存在,请重新选择!"; 
 }else{ 
 strErr="你没有选择要编辑的文件,请重新选择!"; 
 } 
}else if(request.getParameter("act").equals("createF")) 
{ 
 //创建新的文件夹的页面显示 
 strStat="createF"; 
}else if(request.getParameter("act").equals("createFDo")) 
{ 
 //创建新的文件夹 
 String strFoldName=strDealPath+UnicodeToChinese(request.getParameter("foldName")).trim()+"\\"; 

 //out.println(strFoldName); 
 //out.close(); 

 File fileCreateF=new File(strFoldName); 
  
 if(!fileCreateF.exists()) 
 { 
 try{ 
 fileCreateF.mkdir(); 
 response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");  
 return; 
 }catch(Exception e){ 
 strErr="创建新文件夹失败!"; 
 } 
 } 
 else 
  
 {  
 strErr="指定的文件夹名称和现有的文件夹名称重复,请重新指定一个新的文件夹名称!"; 
 } 
}else if(request.getParameter("act").equals("delFoldDo")) 
{ 
 //删除操作 
 try{ 
 String strFileDelF=strDealPath+UnicodeToChinese(request.getParameter("fold"))+"\\"; 
 File fileDelF=new File(strFileDelF); 
  
 if(fileDelF.exists()){ 
 File[] fileArrCheck=fileDelF.listFiles(); 
 if(!(fileArrCheck.length>0)) 
 { 
 fileDelF.delete(); 
 response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");  
 return; 
 }else 
 { 
 strErr="文件夹下面还包含着文件,请把文件都删除,再删除文件夹"; 
 } 
 }else{ 
 strErr="要删除的文件夹不存在,请重新选择"; 
 } 
  
 }catch(Exception e) 
 { 
 strErr="文件夹删除操作错误!"; 
 } 
}else if(request.getParameter("act").equals("renameFold")) 
{ 
 strStat="renameFold"; 
}else if(request.getParameter("act").equals("renameFoldDo")) 
{ 
 //文件夹更名操作 
 //根据参数判断是否对于文件夹名称有更改动作发生 
 if(request.getParameter("changeDo").equals("true")) 
 { 
 //有文件名,更名发生 
 try{ 
 String strFileRenameF=strDealPath+UnicodeToChinese(request.getParameter("fold"))+"\\"; 
 File fileRenameF=new File(strFileRenameF); 
  
 String strFileRenameToF=strDealPath+UnicodeToChinese(request.getParameter("newFoldName"))+"\\"; 
 File fileRenameToF=new File(strFileRenameToF); 
  
 //判断更名的文件夹是否存在 
 if(fileRenameF.exists()){ 
 //判断新的文件夹名称是否与现存的文件夹重名 
 if(!fileRenameToF.exists()) 
 { 
 fileRenameF.renameTo(fileRenameToF); 
 response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");  
 return; 
 }else 
 { 
 strErr="指定的文件夹名称和现有的文件夹名称重复,请重新指定一个文件夹名称!"; 
 } 
 }else{ 
 strErr="要更名的文件夹不存在,请重新选择"; 
 } 
  
 }catch(Exception e) 
 { 
 strErr="文件夹更名操作错误!"; 
 } 
 } 
}else if(request.getParameter("act").equals("renameFile")) 
{ 
 strStat="renameFile"; 
}else if(request.getParameter("act").equals("renameFileDo")) 
{ 
 //文件更名操作 
 //根据参数判断是否对于文件名称有更改动作发生 
 if(request.getParameter("changeDo").equals("true")) 
 { 
 //有文件名,更名发生 
 try{ 
 String strFileRenameFi=strDealPath+UnicodeToChinese(request.getParameter("file")); 
 File fileRenameFi=new File(strFileRenameFi); 
  
 String strFileRenameToFi=strDealPath+UnicodeToChinese(request.getParameter("newFileName")); 
 File fileRenameToFi=new File(strFileRenameToFi); 
  

⌨️ 快捷键说明

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