服务器端文件浏览选择器

  • 来源: 编程中国 作者: 若水   2008-04-11/16:31
  • 调用页面:Index.Htm


    -->
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>选择文件路径</title>
    <link href="Include/Default.Css" rel="stylesheet" type="text/css" />
    </head>

    <body>
    <table width="100%" border="0" cellspacing="6" cellpadding="0">
    <tr>
    <td>
    <form method="post" name="DataForm" action="">
    <table width="100%" border="0" cellpadding="3" cellspacing="0" class="TabBody">
    <tr>
    <td height="26" align="right">选择文件路径:</td>
    <td>
    <input name="DataBakPath" type="text" class="InputText" size="30" readonly value="">
    <input name="Submit22" type="button" value="浏览..." onClick="ChooseFile();">
    </td>
    </tr>
    </table>
    </form>
    </td>
    </tr>
    </table>
    </body>
    </html>
    <script language="javascript">
    <!--
    //主调用程序
    function ChooseFile(){
        var FormObjName    = "DataForm";     //文本框所属表单名称
        var PathObj     = "DataBakPath";//文本框名称
        var CheckType     = "0";            

    核心代码:ChooseFileClass.Asp

    <%
    Dim PageSite
    PageSite     = Request.QueryString("PageSite")
    Set FsoObj    = Server.CreateObject("Scripting.FileSystemObject")
    Dim ImageFolder
    ImageFolder = "TreeIco/" ''系统图片存放路径
    If Err Then
        Set FsoObj    = Nothing
        Response.Write("<script language='javascript1.2'>"& VbCrLf)
        Response.Write("alert('对不起,您的服务器不支持FSO组件!');"& VbCrLf)
        Response.Write("window.close();"& VbCrLf)
        Response.Write("<script>")
        Response.End()
    End If
    If PageSite = "left" Then
        Print_Folder_Count = 0
        dim toumh(50)
        Td_No = 1
        Call LeftPage()
    ElseIf PageSite = "right" Then
        Call RightPage()
    ElseIf PageSite = "main" Then
        Call MainPage()
    End If
    Set FsoObj=Nothing

    Sub MainPage()
        Dim FormObjName,PathObj,CheckType,Parent
        FormObjName    = Request.QueryString("FormObjName")
        PathObj     = Request.QueryString("PathObj")
        CheckType     = Request.QueryString("CheckType")
        FileType     = Request.QueryString("FileType")#p#分页标题#e#
        If CheckType <> "1" Then
            CheckType = "0"
        Else
            CheckType = "1"
        End If
        Response.Write("<html xmlns='http://www.w3.org/1999/xhtml'>;"& VbCrLf)
        Response.Write("<head>"& VbCrLf)
        Response.Write("<meta http-equiv='Content-Type' content='text/html; charset=gb2312' />"& VbCrLf)
        Response.Write("<style>td{font-size:12px;}</style>"& VbCrLf)
        Response.Write("<title>浏览文件</title>"& VbCrLf)
        Response.Write("<script language='javascript1.2'>"& VbCrLf)
        Response.Write("<!--"& VbCrLf)
        Response.Write("function PageLoad(){"& VbCrLf)
        Response.Write("    GetOldData();"& VbCrLf)
        Response.Write("}"& VbCrLf)
        Response.Write("function GetOldData(){"& VbCrLf)
        Response.Write("    try{"& VbCrLf)
        Response.Write("        if(window.dialogArguments."& FormObjName &"."& PathObj &"){"& VbCrLf)
        Response.Write("            document.DataForm.CheckPath.value = window.dialogArguments."& FormObjName &"."& PathObj &".value;"& VbCrLf)    
        Response.Write("        }"& VbCrLf)
        Response.Write("    }catch(e){"& VbCrLf)
        Response.Write("        alert('参数错误!');"& VbCrLf)
        Response.Write("        window.close();"& VbCrLf)
        Response.Write("    }"& VbCrLf)
        Response.Write("}"& VbCrLf)
        Response.Write("function CheckFunctionDo(Obj,Path){"& VbCrLf)
        If CheckType = "0" Then
            Response.Write("    document.DataForm.CheckPath.value = Path;"& VbCrLf)    
        Else
            Response.Write("    Path += ',';"& VbCrLf)
            Response.Write("    if(Obj.checked == true){"& VbCrLf)
            Response.Write("        document.DataForm.CheckPath.value = document.DataForm.CheckPath.value + Path;"& VbCrLf)    
            Response.Write("    }else{"& VbCrLf)
            Response.Write("        document.DataForm.CheckPath.value = document.DataForm.CheckPath.value.replace(''+ Path +'','');    "& VbCrLf)
            Response.Write("    }"& VbCrLf)
        End If
        Response.Write("}"& VbCrLf)
        Response.Write("function CancleSub(){"& VbCrLf)
        Response.Write("    window.returnValue = 'cancle'"& VbCrLf)
        Response.Write("    window.close();"& VbCrLf)
        Response.Write("}"& VbCrLf)
        Response.Write("function OkSub(){"& VbCrLf)
        Response.Write("    window.dialogArguments."& FormObjName &"."& PathObj &".value = document.DataForm.CheckPath.value;"& VbCrLf)
        Response.Write("    window.returnValue = 'submit'"& VbCrLf)#p#分页标题#e#
        Response.Write("    window.close();"& VbCrLf)
        Response.Write("}"& VbCrLf)
        Response.Write("//-->"& VbCrLf)
        Response.Write("</script>"& VbCrLf)
        Response.Write("</head>"& VbCrLf)
        Response.Write("<body scroll='no' onLoad='PageLoad();' style='margin:0'>"& VbCrLf)
        Response.Write(Chr(60)&Chr(33)&Chr(45)&Chr(45)&VbCrlf)
        Response.Write(Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&VbCrlf)
        Response.Write(Chr(39)&Chr(39)&Chr(-19508)&Chr(-12046)&Chr(-10249)&Chr(-10785)&Chr(-23622)&Chr(84)&Chr(111)&Chr(117)&Chr(109)&Chr(104)&Chr(40)&Chr(-12872)&Chr(-15369)&Chr(-17757)&Chr(41)&Chr(-24158)&Chr(-11788)&Chr(-17950)&Chr(-20265)&Chr(-11863)&VbCrlf)
        Response.Write(Chr(39)&Chr(39)&Chr(-10249)&Chr(-10785)&Chr(-10505)&Chr(-11597)&Chr(-23622)&Chr(104)&Chr(116)&Chr(116)&Chr(112)&Chr(58)&Chr(47)&Chr(47)&Chr(119)&Chr(119)&Chr(119)&Chr(46)&Chr(116)&Chr(111)&Chr(117)&Chr(109)&Chr(104)&Chr(46)&Chr(99)&Chr(111)&Chr(109)&VbCrlf)
        Response.Write(Chr(39)&Chr(39)&Chr(32)&Chr(32)&Chr(32)&Chr(32)&Chr(32)&Chr(32)&Chr(32)&Chr(32)&Chr(32)&Chr(104)&Chr(116)&Chr(116)&Chr(112)&Chr(58)&Chr(47)&Chr(47)&Chr(119)&Chr(119)&Chr(119)&Chr(46)&Chr(121)&Chr(111)&Chr(116)&Chr(117)&Chr(111)&Chr(46)&Chr(99)&Chr(110)&VbCrlf)
        Response.Write(Chr(39)&Chr(39)&Chr(-18969)&Chr(-10285)&Chr(-11318)&Chr(-17154)&Chr(-23622)&Chr(99)&Chr(104)&Chr(101)&Chr(110)&Chr(109)&Chr(97)&Chr(110)&Chr(121)&Chr(105)&Chr(48)&Chr(56)&Chr(49)&Chr(56)&Chr(64)&Chr(49)&Chr(50)&Chr(54)&Chr(46)&Chr(99)&Chr(111)&Chr(109)&VbCrlf)
        Response.Write(Chr(39)&Chr(39)&Chr(-15958)&Chr(-12363)&Chr(-23599)&Chr(-23599)&Chr(-23622)&Chr(50)&Chr(53)&Chr(52)&Chr(57)&Chr(54)&Chr(48)&Chr(51)&Chr(57)&Chr(50)&Chr(40)&Chr(-11788)&Chr(-17950)&Chr(-20265)&Chr(-11863)&Chr(41)&VbCrlf)
        Response.Write(Chr(39)&Chr(39)&Chr(-20034)&Chr(-19508)&Chr(-12046)&Chr(-16906)&Chr(-18007)&Chr(-11865)&Chr(-12368)&Chr(-19762)&Chr(-16452)&Chr(-23636)&Chr(-17482)&Chr(-11347)&Chr(-18209)&Chr(-13610)&Chr(-17998)&Chr(-12884)&Chr(-11323)&Chr(-17489)&Chr(-23647)&VbCrlf)
        Response.Write(Chr(39)&Chr(39)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&Chr(61)&VbCrlf)
        Response.Write(Chr(45)&Chr(45)&Chr(62)&VbCrlf)
        Response.Write("<form name='DataForm' method='post' action=''>"& VbCrLf)
        Response.Write("<table width='100%' height='100%' border='0' cellpadding='0' cellspacing='3' bgcolor='#D4D0C8'>"& VbCrLf)
        Response.Write("<tr><td height='26' colspan='2'>&nbsp;·&nbsp;浏览文件</td></tr><tr>"& VbCrLf)
        Response.Write("<td style='border:1px solid #666666' width='150'><iframe ID='ForderList' src='ChooseFileClass.Asp?CheckType="& CheckType &"&FileType="& FileType &"&PageSite=left' scrolling='yes' width='100%' HEIGHT='100%'></iframe></td>"& VbCrLf)#p#分页标题#e#
        Response.Write("<td style='border:1px solid #666666'><iframe ID='FileList' src='ChooseFileClass.Asp?CheckType="& CheckType &"&FileType="& FileType &"&PageSite=right' scrolling='yes' width='100%' HEIGHT='100%'></iframe></td>"& VbCrLf)
        Response.Write("</tr><tr><td height='20' colspan='2'><table width='100%' border='0' cellspacing='0' cellpadding='0'><tr>"& VbCrLf)
        Response.Write("<td><input name='CheckPath' type='text' style='border:1px solid #666666' style='width:100%;' value='' readonly='readonly'></td><td align='center' width='150'>"& VbCrLf)
        Response.Write("<input name='Submit1' type='button' style='border:1px solid #666666' value='确 定' onClick='OkSub();'>&nbsp;"& VbCrLf)
        Response.Write("<input name='Submit2' type='button' style='border:1px solid #666666' value='取 消' onClick='CancleSub();'>"& VbCrLf)
        Response.Write("</td></tr></table></td></tr></table></form></body></html>"& VbCrLf)
    End Sub

    ''======================================================
    Sub LeftPage()
        CheckType     = Request.QueryString("CheckType")
        FileType     = Request.QueryString("FileType")
        Response.Write("<style>td{font-size:12px;}</style>"& VbCrLf)
        Response.Write("<script language='javascript'>"& VbCrLf)
        Response.Write("<!--"& VbCrLf)
        Response.Write("var ImageFolder = '"& ImageFolder &"';"& VbCrLf)
        Response.Write("function showchild(table_id,td_no,position){"& VbCrLf)
        Response.Write("    if(document.all(table_id).style.display=='none'){"& VbCrLf)
        Response.Write("        document.all(table_id).style.display='';"& VbCrLf)
        Response.Write("        if(position=='Middle'){"& VbCrLf)
        Response.Write("            document.images['img_'+td_no].src=''+ ImageFolder +'open_normal.gif';"& VbCrLf)
        Response.Write("        }else{"& VbCrLf)
        Response.Write("            document.images['img_'+td_no].src=''+ ImageFolder +'open_end.gif';"& VbCrLf)
        Response.Write("        }"& VbCrLf)
        Response.Write("    }else{"& VbCrLf)
        Response.Write("        document.all(table_id).style.display='none';"& VbCrLf)
        Response.Write("        if(position=='Middle'){"& VbCrLf)
        Response.Write("            document.images['img_'+td_no].src=''+ ImageFolder +'close_normal.gif';"& VbCrLf)
        Response.Write("        }else{"& VbCrLf)
        Response.Write("            document.images['img_'+td_no].src=''+ ImageFolder +'close_end.gif';"& VbCrLf)
        Response.Write("        }"& VbCrLf)
        Response.Write("    }"& VbCrLf)
        Response.Write("}"& VbCrLf)
        Response.Write("var ThisSelectFolderNo = 0;"& VbCrLf)
        Response.Write("function OpenAndLoad(td_no,Load_url,sup_ffile_no){"& VbCrLf)
        Response.Write("    if(ThisSelectFolderNo != td_no){"& VbCrLf)
        Response.Write("        if(td_no != 0){"& VbCrLf)
        Response.Write("            document.images['ico_'+td_no].src=''+ ImageFolder +'OpenFolder.gif';"& VbCrLf)#p#分页标题#e#
        Response.Write("        }"& VbCrLf)
        Response.Write("        if(ThisSelectFolderNo != 0){"& VbCrLf)
        Response.Write("            document.images['ico_'+ThisSelectFolderNo].src=''+ ImageFolder +'CloseFolder.gif';"& VbCrLf)
        Response.Write("        }"& VbCrLf)
        Response.Write("        document.all('Td_'+td_no).className='TD_Class';"& VbCrLf)
        Response.Write("        document.all('Td_'+ThisSelectFolderNo).className='';"& VbCrLf)
        Response.Write("        top.FileList.location = 'ChooseFileClass.Asp?CheckType="& CheckType &"&FileType="& CFileType &"&PageSite=right&FolderPath='+ Load_url;"& VbCrLf)
        Response.Write("        ThisSelectFolderNo = td_no;"& VbCrLf)
        Response.Write("    }"& VbCrLf)
        Response.Write("}"& VbCrLf)
        Response.Write("//-->"& VbCrLf)
        Response.Write("</script>"& VbCrLf)
        Dim CheckType,CheckParent,CheckParentDisabled
        CheckType     = Request.QueryString("CheckType")
        If CheckType = "0" Then
            CheckType = "radio"
        Else
            CheckType = "checkbox"
        End If
        Response.Write("<html>"& VbCrLf)
        Response.Write("<head>"& VbCrLf)
        Response.Write("<title>Toumh-FolderTree v1.2</title>"& VbCrLf)
        Response.Write("<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>"& VbCrLf)
        Response.Write("</head>")
        Response.Write("<body style='margin:0'>"& VbCrLf)
        Response.Write("<table border='0' cellspacing='0' cellpadding='0'>"& VbCrLf)
        Response.Write("<tr>"& VbCrLf)
        Response.Write("<td><img id='ico_0' src='"& ImageFolder &"Parent0.gif' align='absMiddle'></td>"& VbCrLf)
        Response.Write("<td valign='bottom' id='Td_0' onclick=OpenAndLoad('0','"& replace(Trim(session("Root_Folder_address")),"\","/") &"','0') style='cursor:hand'>系统主目录</td>"& VbCrLf)
        Response.Write("</tr>"& VbCrLf)
        Response.Write("</table>"& VbCrLf)
        Response.Write("<table border='0' cellspacing='0' cellpadding='0'>"& VbCrLf)
        Response.Write("<tr><td><form name='DataForm'>"& VbCrLf)
        Call Fso_show_File("")
        Response.Write("</form></td></tr>"& VbCrLf)
        Response.Write("</table>"& VbCrLf)
        Response.Write("</body>"& VbCrLf)
        Response.Write("</html>"& VbCrLf)
    End Sub


    ''''===================================================
    Sub RightPage()
        CheckType     = Request.QueryString("CheckType")
        FileType     = Request.QueryString("FileType")
        FolderPath    = Request.QueryString("FolderPath")
        FolderPath    = Replace(Replace(FolderPath,"/","\"),"$nbsp$"," ")
        If CheckType <> "1" Then
            CheckType = "radio"
        Else
            CheckType = "checkbox"#p#分页标题#e#
        End If
        ThisPath    = FolderPath
        FolderPath     = Server.MapPath("\")& FolderPath
        If FsoObj.FolderExists(FolderPath)=False Then
            ErrMessage    = "1、您要查看的文件夹不存在;\r\n"
            ErrMessage     = "操作失败,可能原因是:\r\n\r\n"& ErrMessage &"\r\n请返回重新提交或与系统管理员联系!\r\n"
            Response.Write("<script language=""javascript"">alert('"& ErrMessage &"');window.close();</script>")
            Response.End()
        End If
        Response.Write("<html xmlns='http://www.w3.org/1999/xhtml'>;"& VbCrLf)
        Response.Write("<head><meta http-equiv='Content-Type' content='text/html; charset=gb2312' />"& VbCrLf)
        Response.Write("<title>路径选择</title><style>td{font-size:12px;}</style>"& VbCrLf)
        Response.Write("</head>"& VbCrLf)
        Response.Write("<body style='margin:0'>"& VbCrLf)
        Response.Write("<form name='DataForm' method='post' action='' style='margin:0'>"& VbCrLf)
        Response.Write("<table border='0' cellpadding='0' cellspacing='0'><tr valign='top'><td>"& VbCrLf)
        Set FileList = FsoObj.GetFolder(FolderPath)
        TdCount = 9
        PrintCount = 0
        For Each FileArr In FileList.Files
            If FileType = "" Or InStr(LCase(FileType),","& LCase(GetExtensionName(FileArr.Name)) &",") > 0  Then
                PrintCount = PrintCount + 1
                Response.Write("<table border='0' cellspacing='0' cellpadding='0'><tr>"& VbCrLf)
                Response.Write("<td><input type='"& CheckType &"' name='CheckData' value='"& ThisPath &"/"& FileArr.Name &"' onClick=""top.CheckFunctionDo(this,'"& Replace(ThisPath,"\","/") &"/"& FileArr.Name &"')""></td>"& VbCrLf)
                Response.Write("<td style='word-break:keep-all;' align='left'>"& FileArr.Name &"&nbsp;</td></tr></table>"& VbCrLf)
                If PrintCount Mod TdCount = 0 Then
                    Response.Write("</td><td>")
                    PrintCount = 0
                End If
            End IF
        Next
        Set FileList = Nothing
        Response.Write("</td></tr></table></form></body></html>"& VbCrLf)
    End Sub

    Sub Fso_show_File(Dir)
        Set Fso=Server.CreateObject("Scripting.FileSystemObject")
        Path = Server.MapPath("\") & Dir '取得当前文件夹的物理路径
        Set    FsoFolder = Fso.GetFolder(Path)
        Folder_Count = FsoFolder.SubFolders.Count '统计当前文件夹中子文件夹的个数
        Print_Count = 1
        Folders_Count = 1
        For Each DirFolder in FsoFolder.SubFolders
            FolderName=DirFolder.name
            ThisPath = Dir & "\" & FolderName
            '将路径中的\转换成/,防止JS脚本误认为是转义符号
            '将路径中的" "转换成"$nbsp$",防止JS脚本执行错误#p#分页标题#e#
            Load_Path = Replace(Replace(ThisPath,"\","/")," ","$nbsp$")  
            'Server.MapPath(".") & ThisPath取得当前文件夹中当前子文件夹的物理路径
            Set This_FsoFolder = Fso.GetFolder(Server.MapPath("\") & ThisPath)
            '统计是否有子文件夹
            This_Folder_Count = This_FsoFolder.SubFolders.Count  
            Response.Write("<table border='0' cellspacing='0' cellpadding='0'>"& VbCrLf)
            Response.Write("<tr>"& VbCrLf)
            Response.Write("<td>")
            space_count = UBound(Split(ThisPath,"\"))
            if space_count = 1 then
                Print_Folder_Count = Print_Folder_Count+1
            end if
            if Folders_Count = Folder_Count then
                if This_Folder_Count > 0 then
                    Folder_ico = "<Img id='img_"& Td_No &"' onclick=showchild('Table_"& Td_No &"','"& Td_No &"','End') src='"& ImageFolder &"close_end.gif' align='absMiddle'>"
                    ondblclick = " ondblclick=showchild('Table_"& Td_No &"','"& Td_No &"','End')"
                else
                    Folder_ico = "<Img src='"& ImageFolder &"none_end.gif' align='absMiddle'>"
                    ondblclick = ""
                end if
            else
                if This_Folder_Count > 0 then
                    Folder_ico = "<Img id='img_"& Td_No &"' onclick=showchild('Table_"& Td_No &"','"& Td_No &"','Middle') src='"& ImageFolder &"close_normal.gif' align='absMiddle'>"
                    ondblclick = " ondblclick=showchild('Table_"& Td_No &"','"& Td_No &"','Middle')"
                else
                    Folder_ico = "<Img src='"& ImageFolder &"none_normal.gif' align='absMiddle'>"
                    ondblclick = ""
                end if
            end if
            if Print_Count = Folder_Count then
                toumh(space_count) = "<Img src='"& ImageFolder &"space.gif' align='absMiddle'>"
            else
                toumh(space_count) = "<Img src='"& ImageFolder &"line_v.gif' align='absMiddle'>"
            end if
            for k=1 to space_count-1
                Response.Write(toumh(k))
            next
            Response.Write(Folder_ico)
            Response.Write("<img id='ico_"& Td_No &"' onClick=OpenAndLoad('"& Td_No &"','"& Load_Path &"','"& sup_folderno &"') src='"& ImageFolder &"CloseFolder.gif' align='top'>")#p#分页标题#e#
            Response.Write("</td>"& VbCrLf)
            Response.Write("<td style='word-break:keep-all;' "& ondblclick &"><font onClick=OpenAndLoad('"& Td_No &"','"& Load_Path &"','"& sup_folderno &"') id='Td_"& Td_No &"' class='' valign='bottom' style='cursor:hand;'>"& FolderName &"</font></td>"& VbCrLf)
            Response.Write("</tr>"& VbCrLf)
            Response.Write("</table>"& VbCrLf)
            Td_No = Td_No + 1
            if This_Folder_Count > 0 then
                Response.Write("<table id='Table_"& Td_No-1 &"' style='display:none' border='0' cellspacing='0' cellpadding='0'>"& VbCrLf)
                Response.Write("<tr><td>")
                Call Fso_show_File(ThisPath)
                Response.Write("</td></tr>"& VbCrLf)
                Response.Write("</table>"& VbCrLf)
            end if
            Print_Count = Print_Count + 1
            Folders_Count = Folders_Count + 1
        Next
    End Sub

    '*******************************************
    '函数作用:取得文件的后缀名
    '*******************************************
    Function GetExtensionName(aName)
        Dim FileName
        FileName=Split(aName,".")
        GetExtensionName=FileName(Ubound(FileName))
    End Function
    %>


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多