您现在的位置是:网站首页> 编程资料编程资料

MusicGet 类_ASP CLASS类_

2023-05-25 284人已围观

简介 MusicGet 类_ASP CLASS类_

复制代码 代码如下:

<%
Response.Expires = 0  
Response.expiresabsolute = Now() - 1  
Response.addHeader "pragma", "no-cache"  
Response.addHeader "cache-control", "private"  
Response.CacheControl = "no-cache" 
Response.Buffer = True 
Response.Clear
Server.ScriptTimeOut=999999999
'***************************************************************
'*            定义 MusicGet 类
'***************************************************************
Class GetHttp
    Private OXML,FSO,ADOS
    Private Sub Class_Initialize
        Set OXML = server.CreateObject("Microsoft.XMLHTTP") 
        Set FSO  =  Server.CreateObject("Scripting.FileSystemObject")
        Set ADOS = Server.CreateObject("ADODB.Stream")
    End Sub 

    Private Sub Class_Terminate  
        Set OXML = Nothing 
        Set FSO  = Nothing
        Set ADOS = Nothing
    End Sub  

    Public Property Get Version
        Version="动感采集系统v3.0"
    End Property

    '*****************************************************************
    '    function(私有)
    '    作用 :利用流进行中文编码
    '    参数 :vIn(要进行编码的字符患)
    '*****************************************************************
    Private Function BytesToBstr(body)
        Dim Bdat
        Bdat=Body
        ADOS.Type = 1
        ADOS.Mode =3
        ADOS.Open
        ADOS.Write Bdat
        ADOS.Position = 0
        ADOS.Type = 2
        ADOS.Charset = "GB2312"
        BytesToBstr = ADOS.ReadText 
        ADOS.Close
    End Function

    
    '*****************************************************************
    '    function(私有)
    '    作用 :利用流保存文件
    '    参数 :from(远程文件地址),tofile(保存文件位置)
    '*****************************************************************
    Private Function SaveFiles(byref from,byref tofile)
        Dim Datas
        Datas=GetData(from,0)
        Response.Write "保存成功:"&formatnumber(len(Datas)/1024*2,2)&"Kb"
        response.Flush
        if formatnumber(len(Datas)/1024*2,2)>1 then
            ADOS.Type = 1
            ADOS.Mode =3
            ADOS.Open
            ADOS.write Datas
            ADOS.SaveToFile server.mappath(tofile),2
            ADOS.Close()
        else
            Response.Write "保存失败:文件大小"&formatnumber(len(imgs)/1024*2,2)&"Kb,小于1K"
            response.Flush
        end if
    end function

    '*****************************************************************
    '    function(私有)
    '    作用 :利用fso检测文件是否存在,存在返回true,不存在返回false
    '    参数 :filespes(文件位置)
    '*****************************************************************
    Private Function IsExists(byref filespec) 
        If (FSO.FileExists(server.MapPath(filespec))) Then
        IsExists = True
        Else
        IsExists = False
        End If
    End Function

    '*****************************************************************
    '    function(私有)
    '    作用 :利用fso检测文件夹是否存在,存在返回true,不存在返回false
    '    参数 :folder(文件夹位置)
    '*****************************************************************
    Private Function IsFolder(byref Folder)
        If FSO.FolderExists(server.MapPath(Folder)) Then  
        IsFolder = True
        Else
        IsFolder = False
        End If
    End Function

    '*****************************************************************
    '    function(私有)
    '    作用 :利用fso创建文件夹
    '    参数 :fldr(文件夹位置)
    '*****************************************************************
    Private Function CreateFolder(byref fldr) 
        Dim f
        Set f = FSO.CreateFolder(Server.MapPath(fldr))
        CreateFolder = f.Path
        Set f=nothing
    End Function

    '*****************************************************************
    '    function(公有)
    '    作用 :保存文件,并自动创建多级文件夹
    '    参数 :fromurl(远程文件地址),tofiles (保存位置)
    '*****************************************************************
    Public Function SaveData(byref FromUrl,byref ToFiles)
        ToFiles=trim(Replace(ToFiles,"//","/"))
        flName=ToFiles
        fldr=""
        If IsExists(flName)=false then 
            GetNewsFold=split(flName,"/")
        For i=0 to Ubound(GetNewsFold)-1
            if fldr="" then
                fldr=GetNewsFold(i)
            else
                fldr=fldr&"\"&GetNewsFold(i)
            end if
            If IsFolder(fldr)=false then
                CreateFolder fldr
            End if
        Next
        SaveFiles FromUrl,flName
        End if
    End function

    '*****************************************************************
    '    function(公有)
    '    作用 :取得远程数据
    '    参数 :url(远程文件地址),getmode (模式:0为二进制,1为中文编码)
    '*****************************************************************
    Public Function GetData(byref url,byref GetMode) 
        'on error resume next 
        SourceCode = OXML.open ("GET",url,false)
        OXML.send() 
        if OXML.readystate<>4 then exit function
        if GetMode=0 then
        GetData = OXML.responseBody
        else
        GetData = BytesToBstr(OXML.responseBody)
        end if
        if err.number<>0 then err.Clear
    End Function

    '*****************************************************************
    '    function(公有)
    '    作用 :格式化远程图片地址为本地位置
    '    参数 :imgurl(远程图片地址),imgfolder (本地图片目录),fristname(加入的前缀名称)
    '*****************************************************************
    Public Function FormatImgPath(byref ImgUrl,byref ImgFolder,byref FristName,byref noimg)
        strpath=""
        ImgUrl=ImgUrl
        if instr(ImgUrl,"Nophoto") or lenb(GetData(ImgUrl,0))<=0 then
            strpath=noimg
            Response.Write ""&strpath&"" &vbcrlf
        else
            if Instr(ImgUrl,".asp") then
                strpath=FristName&"_"&Mid(ImgUrl, InStrRev(ImgUrl, "=")+1)&".jpg"
            else
                strpath=FristName&"_"&Mid(ImgUrl, InStrRev(ImgUrl, "/")+1)
            end if
            strpath = ImgFolder&"/"&strpath
            strpath = Replace(strpath,"//","/")
            if left(strpath,1)="/" then strpath=right(strpath,len(strpath)-1)
            strpath = trim(strpath)
            Response.Write ""&strpath&"" &vbcrlf
            savedata ImgUrl,strpath
        end if
        FormatImgPath = strpath
    End function

    '*****************************************************************
    '    function(公有)
    '    作用 :格式化远程音乐文件地址为本地位置
    '    参数 :MusicUrl(远程文件地址),oServerUrl (原服务连接地址),MusicFolder(本地音乐文件目录)
    '*****************************************************************
    Public Function FormatMusicPath(byref MusicUrl,byref oServerUrl,byref MusicFolder)
        strpath=""
        strpath = Replace(MusicUrl,oServerUrl,"")
        strpath = MusicFolder&"/"&strpath
        strpath = Replace(strpath,"//","/")
        if left(strpath,1)="/" then strpath=right(strpath,len(strpath)-1)
        FormatMusicPath=trim(strpath)
    End function

    '*****************************************************************
    '    function(公有)
    '    作用 :格式化html
    '*****************************************************************
    Public Function FormatHtml(Str,itype)
        if itype=0 then
            Str=replace(Str,chr(39),"'") 
            Str=replace(Str,chr(34),""") 
            Str=replace(Str,"<","<") 
            Str=replace(Str,">",">") 
        else
            Str=replace(Str,"chr(39)","") 
            Str=replace(Str,"chr(34)","") 
        end if
        FormatHtml=Str
    End function 

    '*****************************************************************
    '    function(公有)
    '    作用 :截取字符
    '    参数 :str要操作的对像,start开始字符,last结束字符,n模式
    '*****************************************************************
    Public Function GetContent(byref str,byref start,byref last,byref n)
        If Instr(lcase(str),lcase(start))>0 then
            select case n
            case 0    '左右都截取(都取前面)(去处关键字)
            GetContent=Right(str,Len(str)-Instr(lcase(str),lcase(start))-Len(start)+1)
            GetContent=Left(GetContent,Instr(lcase(GetContent),lcase(last))-1)
            case 1    '左右都截取(都取前面)(保留关键字)
            GetContent=Right(str,Len(str)-Instr(lcase(str),lcase(start))+1)
            GetContent=Left(GetContent,Instr(lcase(GetContent),lcase(last))+Len(last)-1)
            case 2    '只往右截取(取前面的)(去除关键字)
            GetContent=Right(str,Len(str)-Instr(lcase(str),lcase(start))-Len(start)+1)
            case 3    '只往右截取(取前面的)(包含关键字)
            GetContent=Right(str,Len(str)-Instr(lcase(str),lcase(start))+1)
            case 4    '只往左截取(取后面的)(包含关键字)
            GetContent=Left(str,InstrRev(lcase(str),lcase(start))+Len(start)-1)
            case 5    '只往左截取(取后面的)(去除关键字)
            GetContent=Left(str,InstrRev(lcase(str),lcase(start))-1)
            case 6    '只往左截取(取前面的)(包含关键字)
            GetContent=Left(str,Instr(lcase(str),lcase(start))+Len(start)-1)
            case 7    '只往右截取(取后面的)(包含关键字)
            GetContent=Right(str,Len(str)-InstrRev(lcase

-六神源码网