这个文件的开发的设计思想是这样的。有的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("") ||
(编辑:aniston)
|