分享

简单的ASP在线文件管理+上传源码

 我依然125 2010-11-12

<%@ Language=VBscript %>
<%
Response.Buffer=true
On Error Resume Next
Server.ScriptTimeOut = 1000
Response.Expires=0
Dim StartTime,IsReplace
IsReplace = true '是否过滤编辑时文件的<textarea></textarea>标记,如不过滤遇到有<textarea>标记的文件时编辑有显示不完全的现象
StatrTime = Timer()
%>
<%
'****************************************
'函数定义部分开始
'****************************************

'*******************************************
'过程作用:判断服务器是否支持FSO
'*******************************************
Sub IsErr()
If Err = -2147221005 Then
   Response.write "这台服务器不支持FSO,故本程序无法运行"
   Response.end
End If
End Sub
'*******************************************
'函数作用:取得文件的后缀名
'*******************************************
Function UpDir(ByVal D)
Dim UDir
If Len(D) = 0 then Exit Function
UDir=Left(D,InStrRev(D,"\")-1)
UpDir=UDir
End Function
'*******************************************
'函数作用:取得当前页的URL,
'     为文件添加正确的链接
'*******************************************
Function FileUrl(url,D)
Dim PageUrl,PUrl
PageUrl="http://"& Request.ServerVariables("SERVER_NAME")
PUrl=Left(Request.ServerVariables("URL"),InStrRev(Request.ServerVariables("Url"),"/"))
PageUrl=PageUrl & Purl & Mid(D,2,Len(D)) & "/" & url
FileUrl=PageUrl
End Function
'*******************************************
'函数作用:格式化文件的大小
'*******************************************
Function GetFileSize(size)
Dim FileSize
FileSize=size / 1024
FileSize=FormatNumber(FileSize,2)
If FileSize < 1024 and FileSize > 1 then
   GetFileSize="<font color=red>"& FileSize & "</font> KB"
ElseIf FileSize >1024 then
   GetFileSize="<font color=red>"& FormatNumber(FileSize / 1024,2) & "</font> MB"
Else
   GetFileSize="<font color=red>"& Size & "</font> Bytes"
End If
End Function
'*******************************************
'函数作用:取得文件的后缀名
'*******************************************
Function GetExtensionName(name)
Dim FileName
FileName=Split(name,".")
GetExtensionName=FileName(Ubound(FileName))
End Function
'*******************************************
'函数作用:返回文件类型
'*******************************************
Function GetFileIcon(name)
Dim FileName,Icon
FileName=Lcase(GetExtensionName(name))
Select Case FileName
   Case "asp"
    Icon = "asp"
   Case "bmp"
    Icon = "bmp"
   Case "doc"
   Icon = "doc"
   Case "exe"
    Icon = "exe"
   Case "gif"
    Icon = "gif"
   Case "jpg"
    Icon = "jpg"
   Case "chm"
    Icon = "chm"
   Case "htm","html"
    Icon = "htm"
   Case "log"
    Icon = "log"
   Case "mdb"
   Icon = "mdb"
   Case "swf"
    Icon = "swf"
   Case "txt"
   Icon = "txt"
   Case "wav"
    Icon = "wav"
   Case "xls"
    Icon = "xls"
   Case "rar","zip"
   Icon = "zip"
   Case "css"
   Icon = "css"
   Case Else
    Icon = "none"
End Select
GetFileIcon=Icon
End Function
'*******************************************
'过程作用:删除选定的文件或文件夹
'*******************************************
Sub DelAll()
Dim FolderId,FileId,ThisDir,FileNum,FolderNum,FilePath,FolderPath
FolderId = Split(Request.Form("FolderId"),",")
FileId = Split(Request.Form("FileId"),",")
ThisDir = trim(Request.Form("ThisDir"))
FileNum=0
FolderNum=0
If Ubound(FolderId) <> -1 then   '删除文件夹
   For i = 0 to Ubound(FolderId)
    FolderPath = Server.MapPath(".") & ThisDir & "\" & trim(FolderId(i))
    If Fso.FolderExists(FolderPath) then
     Fso.DeleteFolder FolderPath,true
     FolderNum = FolderNum + 1
    End If
   Next
End If
If Ubound(FileId) <> -1 then   '删除文件
   For j = 0 to Ubound(FileId)
    FilePath = Server.MapPath(".") & ThisDir & "\" & trim(FileId(j))
    If Fso.FileExists(FilePath) then
     Fso.DeleteFile FilePath,true
     FileNum = FileNum + 1
    End If
   Next
End If
Response.write "<script>alert('\n恭喜,删除成功\n\n"& FolderNum &" 个文件夹被删除\n"& FileNum &" 个文件被删除');window.location.href=('"& Replace(Request.ServerVariables("HTTP_REFERER"),"\","\\") &"')</script>"
End Sub
'*******************************************
'过程作用:使选定的文件或文件夹改名
'*******************************************
Sub Rname()
Dim ThisDir,FolderName,NewName,OldName
ThisDir = Trim(Request.Form("ThisDir"))
FolderName = Trim(Request.Form("FolderId"))
FileName = Trim(Request.Form("FileId"))
NewName = Trim(Request.QueryString("NewName"))
If len(FolderName) <> 0 then '文件夹改名
   NewName1 = Server.MapPath(".") & ThisDir & "\" & NewName
   OldName = Server.MapPath(".") & ThisDir & "\" & FolderName
   If not Fso.FolderExists(NewName1) then
    Fso.MoveFolder OldName,NewName1
    Response.write "<script>alert('【 "& FolderName &" 】文件夹已经成功改名为【 "& NewName &" 】');window.location.href=('"& Replace(Request.ServerVariables("HTTP_REFERER"),"\","\\") &"')</script>"
   Else
    Response.write "<script>alert('有同名文件夹,请换个文件夹名');window.location.href=('"& Replace(Request.ServerVariables("HTTP_REFERER"),"\","\\") &"')</script>"
   End If
End If
If len(FileName) <> 0 then '文件改名
   NewName1 = Server.MapPath(".") & ThisDir & "\" & NewName
   OldName = Server.MapPath(".") & ThisDir & "\" & FileName
   If not Fso.FileExists(NewName1) then
    Fso.MoveFile OldName,NewName1
    Response.write "<script>alert('【 "& FileName &" 】文件已经成功改名【 "& NewName &" 】');window.location.href=('"& Replace(Request.ServerVariables("HTTP_REFERER"),"\","\\") &"')</script>"
   Else
    Response.write "<script>alert('有同名文件,请换个文件名');window.location.href=('"& Replace(Request.ServerVariables("HTTP_REFERER"),"\","\\") &"')</script>"
   End If
End If
End Sub
'*******************************************
'过程作用:新建文件
'*******************************************
Sub NewFile()
Dim NewFile,NewFilePath
NewFilePath = Trim(Request.Form("ThisDir"))
NewFile = Trim(Request.Form("NewFileName"))
NewFilePath = Server.MapPath(".") & NewFilePath & "\" & NewFile
If not Fso.FileExists(NewFilePath) and not Fso.FolderExists(NewFilePath) then
   Set FsoFile = Fso.CreateTextFile(NewFilePath)
    FsoFile.Writeline
   FsoFile.close
   Set FsoFile = nothing
   Response.write "<script>alert('建立文件成功');window.location.href=('"& Replace(Request.ServerVariables("HTTP_REFERER"),"\","\\") &"')</script>"
Else
   Response.write "<script>alert('有同名文件,请换个文件名');window.location.href=('"& Replace(Request.ServerVariables("HTTP_REFERER"),"\","\\") &"')</script>"
End if
End Sub
'*******************************************
'过程作用:新建文件夹
'*******************************************
Sub NewFolder()
Dim NewFolder,NewFolderPath
NewFolderPath = Trim(Request.Form("ThisDir"))
NewFolder = Trim(Request.Form("NewFolderName"))
NewFolderPath = Server.MapPath(".") & NewFolderPath & "\" & NewFolder
If not Fso.FolderExists(NewFolderPath) then
   Fso.CreateFolder(NewFolderPath)
   Response.write "<script>alert('建立文件夹成功');window.location.href=('"& Replace(Request.ServerVariables("HTTP_REFERER"),"\","\\") &"')</script>"
Else
   Response.write "<script>alert('有同名文件夹,请换个文件夹名');window.location.href=('"& Replace(Request.ServerVariables("HTTP_REFERER"),"\","\\") &"')</script>"
End if
End Sub
'*******************************************
'过程作用:css 样式
'*******************************************
Sub Css()
%>
<style>
.fonts{font-size:9pt;line-height:25px}
.button{padding:2px;
   height:20px;
   background-color:#FF9900;
   color:#ffffff;
   border:1px solid #333333;
   font-size:12px;
   font-family: "宋体";
}
.TextBox {
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #666666;
border-right-color: #CCCCCC;
border-bottom-color: #CCCCCC;
border-left-color: #666666;
padding: 2px;
height: 300px;
font-size:12px;
font-family: "宋体";

}
.InputBox {
         border-top-width:1px;
         border-left-width:1px;
         border-right-width:1px;
         border-bottom-width:1px;
         border-top-color:#000000;
         border-left-color:#000000;
         border-bottom-color:#000000;
         border-right-color:#000000;
         padding:2px;
         height:20px;

}
Input, Select, TextArea {
font-family: "宋体";
font-size: 12px;
text-decoration: none;
}
a:link { color: #000000; text-decoration: none}
a:visited { color: #000000; text-decoration: none}
a:hover { color: #FF0000; text-decoration: underline}
</style>
<%
End Sub
'*******************************************
'过程作用:编辑文件
'*******************************************
Sub Edit()
Dim FilePath,FileName,action
Set Fso = Server.CreateObject("Scripting.FileSystemObject")
IsErr
action=Trim(Request.QueryString("action"))
If action = ("Save") then '保存文件
   Dim FileSave
   FilePath = trim(Request.QueryString("FilePath"))
   FileAll = trim(Request.Form("FileAll"))
   If IsReplace then FileAll = Replace(FileAll,"\\textarea\\","textarea")
   If Fso.FileExists(FilePath) then
    Set FileSave = Fso.OpenTextFile(FilePath,2)
     FileSave.Write(FileAll)
    FileSave.Close
    Response.write "<script>if(confirm('文件已经保存,是否关闭本页')){window.close();}else{history.back();}</script>"
   Else
    Response.write "<script>alert('发生错误,文件已经被删除或者损坏!');window.close()</script>"
   End If
ElseIf action = ("Edit") then '读取文件
   Dim FileAll
   FilePath = Trim(Request.Form("ThisDir"))
   FileName = Trim(Request.Form("FileId"))
   FilePath1 = Server.MapPath(".") & FilePath & "\" & FileName
   If Fso.FileExists(FilePath1) then
    Set FileOpen = Fso.OpenTextFile (FilePath1,1)
     FileAll = FileOpen.ReadAll
    FileOpen.close
   If IsReplace then FileAll = Replace(FileAll,"textarea","\\textarea\\")
   Else
    Response.write "<script>alert('发生错误,文件已经被删除或者损坏!');window.close()</script>"
   End If
%>
<html>
<head>
<title>FSO在线编辑</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<% Call Css %>
<script language=javascript>
function Check()
{
if(confirm("确定要保存文件么?\n此操作不可恢复!")){
   return true;
   }
else{
   return false;
}
}
</script></head>

<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
   <form name="form" method="post" action="?action=Save&FilePath=<%=Server.MapPath(".") & FilePath & "\" & Filename %>" onSubMit="return Check()">
<table width="80%" border="0" cellspacing="0" cellpadding="0" align="center" class="fonts">
<tr>
<td> </td>
</tr>
<tr>
<td>系统主目录:<a href=?action=Open&Dir= title=返回到系统主目录><font color=FF6600><b><%=Server.MapPath(".")%></b></font></a></td>
</tr>
<tr>
<td bgcolor="B7CECD" height="1"></td>
</tr>
<tr>
   <td height="20" valign="bottom">  当前目录:<%=Server.MapPath(".") & FilePath %></td>
</tr>
<tr>
<td bgcolor="B7CECD" height="1"></td>
</tr>
<tr>
   <td height="30" valign="middle"> 文件名: <font color=red><b><%=FileName%></b></font> 
<select name="select" onChange="FileAll.style.fontSize=this.options[this.options.selectedIndex].value">
<option selected value="12px">字体大小</option>
<option value="12px">12px</option>
<option value="14px">14px</option>
<option value="16px">16px</option>
</select>
<select name="select2" onChange="FileAll.style.color=this.options[selectedIndex].value">
<option selected value="#000000">颜色</option>
<option value="#666666">灰色</option>
<option value="#ff0000">红色</option>
<option value="#087100">绿色</option>
</select>
     </td>
</tr>
<tr>
<td bgcolor="B7CECD" height="1" id="a11"></td>
</tr>
<tr>
<td><table cellpadding=3 cellspac=0 class=fonts><tr><td>
    <textarea id="FileAll" name="FileAll" cols="100" rows="20" class=textbox style="word-break: break-all; width: 700px; height: 380px;"><%=FileAll%></textarea>
</td><tr><td height=0></td></tr><tr><td>
    <input type="submit" name="Submit" value=" 保存文件 " class=button>
    <input type="reset" name="Submit2" value=" 撤消修改 " class=button>
<input type="button" name="Submit3" value=" 关闭窗口 " class=button onClick="window.close()">
</td></tr></table><br>
   </td>
</tr>
</table>
   </form>
</body>
</html>
<%
End If
Set Fso = nothing
End Sub
'****************************************
'函数定义部分结束
'****************************************
%>
<%
Dim Fso,FsoFile,FileType,FileSize,FileTime,Path
Dim Dir
action=Trim(Request.QueryString("action"))
Set Fso=Server.CreateObject("Scripting.FileSystemObject")
IsErr
If action = "Del" then
   Call DelAll
ElseIf action = "NewFile" then
   Call NewFile
ElseIf action = "NewFolder" then
   Call NewFolder
ElseIf action = "Rname" then
   Call Rname
ElseIf action = "Edit" then
   Call Edit
ElseIf action = "Save" then
   Call Edit
Else
   Dir=Trim(Request.QueryString("Dir"))
   Path = Server.MapPath(".") & Dir
   Set FsoFile = Fso.GetFolder(Server.MapPath("."))
   FsoFileSize = FsoFile.size '空间大小统计
   Set FsoFile = nothing
   Set FsoFile = Fso.GetFolder(Path)
%>
<html>
<head>
<title>FSO在线编辑</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<% Call Css %>
<script language=javascript>
function Checked()
{
var j = 0
for(i=0;i < document.form.elements.length;i++){
   if(document.form.elements[i].name == "FileId" || document.form.elements[i].name == "FolderId"){
    if(document.form.elements[i].checked){
     j++;
    }
   }
}
return j;
}
function CheckAll1()
{
for(i=0;i<document.form.elements.length;i++)
{
   if(document.form.elements[i].checked){
    document.form.elements[i].checked=false;
    document.form.CheckAll.checked=false;
   }
   else{
    document.form.elements[i].checked = true;
    document.form.CheckAll.checked = true;
   }
}
}
function DelAll()
{
if(Checked() <= 0){
   alert("您必须选择其中的一个文件或文件夹");
}
else{
   if(confirm("确定要删除选择的文件或文件夹么?\n此操作不可以恢复!")){
    form.action="?action=Del";
    form.submit();
   }
}
}
function Edit()
{
if(Checked() == 0){
   alert("您必须选择其中的一个文件");
}
else{
   if(Checked() != 1){
    alert("只能选择一个文件(文本文件)");
   }
   else{
    for(i=0;i < document.form.elements.length;i++){
    if(document.form.elements[i].name == "FileId" && document.form.elements[i].checked){
     form.action="?action=Edit";
     form.target="self";
     form.submit();
     break;
    }
    else if(document.form.elements[i].name == "FolderId" && document.form.elements[i].checked){
     alert("不能编辑文件夹")
     break;
    }
    }
   }
}
}
function Rname()
{
if(Checked() == 0){
   alert("您必须选择一个文件或文件夹");
}
else{
   if(Checked() != 1){
    alert("只能选择一个文件或一个文件夹");
   }
   else{
    for(i=0;i < document.form.elements.length;i++){
     if(document.form.elements[i].name == "FolderId" && document.form.elements[i].checked){
      var j = prompt("请输入新文件夹名",document.form.elements[i].value)
      break;
     }
     else if(document.form.elements[i].name == "FileId" && document.form.elements[i].checked){
      var j = prompt("请输入新文件名",document.form.elements[i].value)
      break;
     }
    }
    if(j != "" && j != null){
     if(IsStr(j) == j.length){
      form.action="?action=Rname&NewName=" + j;
                                                      form.target="_self";
      form.submit();
     }
     else{
      alert("新名称不符合标准,只能是字母、数字、点和下划线的组合,\n不能含有汉字、空格和其他符号");
     }
    }
   }
}
}
function IsStr(w)
{
var str = "abcdefghijklmnopqrstuvwxyz_1234567890."
w = w.toLowerCase();
var j = 0;
for(i=0;i < w.length;i++){
   if(str.indexOf(w.substr(i,1)) != -1){
    j++;
   }
}
return j;
}
function NewFile(form,i)
{
if(i == 1){
   if(form.NewFolderName.value == ""){
    alert("文件夹名不能为空");
   }
   else{
    if(IsStr(form.NewFolderName.value) == form.NewFolderName.value.length){
     form.action="?action=NewFolder";
     form.submit();
    }
    else{

     alert("文件夹名不符合标准,只能是字母、数字、点和下划线的组合,\n不能含有汉字、空格和其他符号");
    }
   }
}
else{
   if(form.NewFileName.value == ""){
    alert("文件名不能为空");
   }
   else{
    if(IsStr(form.NewFileName.value) == form.NewFileName.value.length){
     form.action="?action=NewFile";
     form.submit();
    }
    else{
     alert("文件名不符合标准,只能是字母、数字、点和下划线的组合,\n不能含有汉字、空格和其他符号");
    }
   }
}
}
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
<table width="80%" border="0" cellspacing="0" cellpadding="0" align="center" class="fonts">
<tr>
<td> </td>
</tr>
<tr>
<td>系统主目录:<a href="?action=Open&Dir=" title="返回到系统主目录"><font color=FF6600><b><%=Server.MapPath(".")%></b></font></a>   空间占用:<%=GetFileSize(FsoFileSize)%></td>
</tr>
<tr>
<td bgcolor="B7CECD" height="1"></td>
</tr>
<tr>
<td height="20" valign=bottom> <a href=?action=Open&Dir=<%=UpDir(Dir)%>>返回到上一目录</a>  当前目录:<%=Server.MapPath(".") & Dir %><br> 占用空间:<%=GetFileSize(FsoFile.size)%>  其中包含 <font color=red><%=FsoFile.SubFolders.count%></font> 个文件夹; <font color=red><%=FsoFile.Files.count%></font> 个文件</td>
</tr>
<tr>
<td bgcolor="B7CECD" height="1"></td>
</tr>
<form name="form1" method="post">
<tr>
   <td height="60" valign="middle">     新建文件夹:
<input type="text" name="NewFolderName" size="15" class=InputBox title=在当前目录下新建文件夹 maxlength="50">
 
<input type="button" name="Submit4" value="新建文件夹" class=button style="cursor:hand" title=新建文件夹 onClick="NewFile(this.form,1)">
<font color="990033">
<input type="hidden" name="ThisDir" value="<%=Dir%>">
</font><br>
    新建文件:  
<input type="text" name="NewFileName" size="15" class=InputBox title=在当前目录下新建文件 maxlength="50">
 
<input type="button" name="Submit5" value=" 新建文件 " class=button style="cursor:hand" title=新建文件 onClick="NewFile(this.form,2)">
   </td>
</tr>
</form>
<tr>
<td valign="top">
   <table width="85%" border="0" cellspacing="1" cellpadding="0" bgcolor="B4E2EF" class="fonts">
<form name="form" method="post" >
<tr bgcolor="F4F4F4">
   <Td width="6%" align="center"> </td>
   <td width="39%"><font color="990033"> 文件/文件夹名 </font></td>
   <td width="13%" align="center"><font color="990033">类型</font></td>
   <td width="15%" align="center"><font color="990033">文件大小</font></td>
   <td width="27%" align="center"><font color="990033">最后修改时间</font></td>
</tr>
<%
   For Each DirFolder in FsoFile.SubFolders
   FolderName=DirFolder.name
   FolderSize=GetFileSize(DirFolder.size)
   FolderTime=DirFolder.DateLastModified
%>
<tr bgcolor="#FFFFFF">
   <td width="6%" align="center">
    <input type="checkbox" name="FolderId" value="<%=FolderName%>">
   </td>
   <td width="39%"> <a href=?action=Open&Dir=<%=Dir%>\<%=FolderName%>><%=FolderName%></a></td>
   <td width="13%" align="center">文件夹</td>
   <td width="15%" align="center"><%=FolderSize%></td>
   <td width="27%" align="center"><%=FolderTime%></td>
</tr>
<% Next %>
<%
   For Each DirFiles in FsoFile.Files
   FileName=DirFiles.name
   FileType=GetFileIcon(FileName)
   FileSize=GetFileSize(DirFiles.size)
   FileTime=DirFiles.DateLastModified
%>
<tr bgcolor="#FFFFFF">
   <td width="6%" align="center">
    <input type="checkbox" name="FileId" value="<%=FileName%>">
   </td>
   <td width="39%"> <a href=<%=FileUrl(FileName,Dir)%> target=_blank><%=FileName%></a></td>
   <td width="13%" align="center"><%=FileType%>文件</td>
   <td width="15%" align="center"><%=FileSize%></td>
   <td width="27%" align="center"><%=FileTime%></td>
</tr>
<% Next %>
<tr bgcolor="#FFFFFF">
   <td width="6%" align="center">
    <input type="checkbox" name="CheckAll" value="checkbox" onClick="CheckAll1()" title=全部选择 style="cursor:hand">
   </td>
   <td colspan="4" height="30"> 
    <input type="button" name="Submit" value="编 辑" class=button style="cursor:hand" onClick="Edit()" title=编辑>
    <input type="button" name="Submit2" value="删 除" class=button style="cursor:hand" onClick="DelAll()" title=删除>
    <input type="button" name="Submit3" value="重命名" class=button style="cursor:hand" onClick="Rname()" title=重命名>
    <font color="990033">
    <input type="hidden" name="ThisDir" value="<%=Dir%>">
    </font> </td>
</tr>
</form>
   </table>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td bgcolor="B7CECD" height="1"></td>
</tr>
<tr>
<td height="20" align="center">  程序制作:<a href="mailto:likaiabc@163.com">阿赛工作室</a>  程序运行时间:<font color=red><%=FormatNumber((Timer()-StatrTime)*1000,3) %></font> 毫秒</td>
</tr>
<tr>
<td bgcolor="B7CECD" height="1"></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</body>
</html>
<% End If
Set FsoFile = nothing
Set Fso = nothing
%>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约