深入学习ASP动态网页技术之对文件系统的管理

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

对于已经上传的文件,随着时间的漫长,内容的更替,这些上传文件就需要管理了。最常见的,则是对于一些上传文件的删除。那么,在线的文件删除则是通过FSO来实现。同时,在文件删除之前必须确定删除某个具体的文件或文件夹,这就需要能查看到所有的上传文件内容。

下面的这些内容是摘录在某BLOG现成内容,主要是提取精华方便自己的使用,也与大家共享。

在FSO浏览上传文件时需要到一些功能,这些功能已自定义为函数以公用,该文件内容如下,拷贝代码,保存为function.asp

<%

function getPathList(pathName) '获得路径的文件信息

dim FSO,ServerFolder,getInfo,getInfos,tempS

getInfo=""

Set FSO=Server.CreateObject("Scripting.FileSystemObject")

Set ServerFolder=FSO.GetFolder(Server.MapPath(pathName))

Dim ServerFolderList,ServerFolderEvery

Set ServerFolderList=ServerFolder.SubFolders

tempS=""

For Each ServerFolderEvery IN ServerFolderList

getInfo=getInfo&tempS&ServerFolderEvery.Name

tempS="*"

Next

getInfo=getInfo&"|"

Dim ServerFileList,ServerFileEvery

Set ServerFileList=ServerFolder.Files

tempS=""

For Each ServerFileEvery IN ServerFileList

getInfo=getInfo&tempS&ServerFileEvery.Name

tempS="*"

Next

Set FSO=Nothing

getInfos=split(getInfo,"|")

getPathList=getInfos

end function

function getFileInfo(FileName) '获取文件信息

dim FSO,File,FileInfo(3)

Set FSO=Server.CreateObject("Scripting.FileSystemObject")

if FSO.FileExists(Server.MapPath(FileName)) then

Set File=FSO.GetFile(Server.MapPath(FileName))

FileInfo(0)=File.Size

if FileInfo(0)/1000>1 then

FileInfo(0)=int(FileInfo(0)/1000)&" KB"

else

FileInfo(0)=FileInfo(0)&" Bytes"

end if

FileInfo(1)=lcase(right(FileName,4))

FileInfo(2)=File.DateCreated

FileInfo(3)=File.Type

end if

getFileInfo=FileInfo

Set FSO=Nothing

end function

function bc(t,s)

dim tl,sl,i

bc=false

sl=len(s)

tl=len(t)

if tl< sl then bc=true:exit function

for i=1 to sl

if mid(t,i,1)<>mid(s,i,1) then bc=true:exit function

next

end function

%>

要管理文件就必须先查看到这些上传的文件,该文件内容如下,拷贝代码,保存为showf.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<!--#include file="function.asp" -->

<script>

function checkAll(){

for (i=0;i<document.forms[0].length;i++){

if (document.forms[0][i].tagName=="INPUT"){

if (document.forms[0][i].type=="checkbox")

{document.forms[0][i].checked="checked"}

}

}

}

</script>

<form action="delf.asp" method="post" onsubmit="if (confirm('是否删除选择的文件或文件夹')) {return true} else {return false}">

<input type="hidden" name="whatdo" value="DelFiles"/>

<%

AttPath=Request.QueryString("AttPath")

if len(AttPath)<1 then

AttPath="uploadfile"

elseif bc(server.mapPath(AttPath),server.mapPath("uploadfile")) then

AttPath="uploadfile"

end If

ArrFolders=split(getPathList(AttPath)(0),"*")

Arrfiles=split(getPathList(AttPath)(1),"*")

response.write (AttPath&"<br>")

if AttPath<>"uploadfile" then

arrUpFolders=split(AttPath,"/")

for i=0 to ubound(arrUpFolders)-1

arrUpFolder=arrUpFolder&TempF&arrUpFolders(i)

TempF="/"

next

end if

if len(arrUpFolder)>0 then

response.write "------<a href=""?AttPath="&arrUpFolder&""">返回上级目录</a><br>"

end if

for each ArrFolder in ArrFolders

response.write "<input name=""folders"" type=""checkbox"" value="""&AttPath&"/"&ArrFolder&"""/>&nbsp;[文件夹]<a href=""?AttPath="&AttPath&"/"&ArrFolder&""">"&ArrFolder&"</a><br>"

next

for each Arrfile in Arrfiles

response.write "<input name=""Files"" type=""checkbox"" value="""&AttPath&"/"&Arrfile&"""/>&nbsp;<a href="""&AttPath&"/"&Arrfile&""" target=""_blank"">"&Arrfile&"</a>&nbsp;&nbsp;"&getFileInfo(AttPath&"/"&Arrfile)(0)&" | "&getFileInfo(AttPath&"/"&Arrfile)(2)&" | "&getFileInfo(AttPath&"/"&Arrfile)(3)&"<br>"

next

%>

<input type="button" value="全选" onclick="checkAll()"/>

<input type="submit" name="Submit" value="删除所选的文件或文件夹"/>

</form>

在确认选择某文件或某文件夹删除后,action="delf.asp" ,将跳转到具体的删除文件的功能页,该文件内容如下,拷贝代码,保存为delf.asp

<!--#include file="function.asp" -->

<%

if Request.form("whatdo")="DelFiles" then

dim getFolders,getFiles,getFolder,getFile,getFolderCount,getFileCount

Dim FSODel

Set FSODel=Server.CreateObject("Scripting.FileSystemObject")

getFolders=split(Request.form("folders"),", ")

getFiles=split(Request.form("Files"),", ")

getFolderCount=0

getFileCount=0

for each getFolder in getFolders

if len(getPathList(getFolder)(1))>0 then

response.write getFolder&"文件夹内含有文件,无法删除!<a href=# onclick=history.go(-1)>返回</a>"

response.end

end if

if FSODel.FolderExists(Server.MapPath(getFolder)) then

FSODel.DeleteFolder Server.MapPath(getFolder),true

getFolderCount=getFolderCount+1

end if

next

for each getFile in getFiles

if FSODel.FileExists(Server.MapPath(getFile)) then

&n

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航