newasp中下载类

发布时间:2022-04-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了newasp中下载类脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
复制代码 代码如下:

<%
'================================================
'&nbsp;函数名:SaveRemoteFile
' 作  用:保存远程文件到本地
' 参  数:strFileName ----保存文件的名称
'         strRemoteUrl ----远程文件URL
' 返回值:布尔值 True/False
'================================================
Function SaveRemoteFile(ByVal strFileName, ByVal strRemoteUrl)
    Dim oStream, Retrieval, GetRemoteData

    SaveRemoteFile = False
    On Error Resume Next
    Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP")
    Retrieval.OPEn "GET", strRemoteUrl, False, "", ""
    Retrieval.Send
    If Retrieval.readystate <> 4 Then ExIT Function
    If Retrieval.Status > 300 Then Exit Function
    GetRemoteData = Retrieval.ResponseBody
    Set Retrieval = Nothing

    If LenB(GetRemoteData) > 100 Then
        Set oStream = Server.CreateObject("Adodb.Stream")
        oStream.Type = 1
        oStream.Mode = 3
        oStream.Open
        oStream.Write GetRemoteData
        oStream.SaveToFile Server.MapPath(strFileName), 2
        oStream.Cancel
        oStream.Close
        Set oStream = Nothing
    Else
        Exit Function
    End If

    If Err.Number = 0 Then
        SaveRemoteFile = True
    Else
        Err.Clear
    End If
End Function
%>

复制代码 代码如下:

<%
Class Download_Cls
    PRivate sUploadDir
    Private nAllowSize
    Private sAllowExt
    Private sOriginalFileName
    Private sSaveFileName
    Private sPathFileName

    Public Property Get RemoteFileName()
        RemoteFileName = sOriginalFileName
    End Property

    Public Property Get LocalFileName()
        LocalFileName = sSaveFileName
    End Property

    Public Property Get LocalFilePath()
        LocalFilePath = sPathFileName
    End Property

    Public Property Let RemoteDir(ByVal strDir)
        sUploadDir = strDir
    End Property

    Public Property Let AllowMaxSize(ByVal intSize)
        nAllowSize = intSize
    End Property

    Public Property Let AllowExtName(ByVal strExt)
        sAllowExt = strExt
    End Property

    Private Sub Class_Initialize()
        On Error Resume Next
        Script_Object = "Scripting.FileSystemObject"
        sUploadDir = "UploaDFile/"
        nAllowSize = 500
        sAllowExt = "gif|jpg|png|bmp"
    End Sub

    Public Function ChangeRemote(sHTML)
        On Error Resume Next
        Dim s_Content
        s_Content = sHTML
        On Error Resume Next
        Dim re, s, RemoteFileUrl, SaveFileName, SaveFileType
        Set re = New RegExp
        re.IgnoreCase = True
        re.Global = True
        re.Pattern = "((http|https|ftp|rtsp|mms):(\/\/|\\\\){1}(([A-Za-z0-9_-])+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(\S*\/)((\S)+[.]{1}(" & sAllowExt & ")))"
        Set s = re.Execute(s_Content)
        Dim a_RemoteUrl(), n, i, brepeat
        n = 0
        ' 转入无重复数据
        For each RemoteFileUrl In s
            If n = 0 Then
                n = n + 1
                redim a_RemoteUrl(n)
                a_RemoteUrl(n) = RemoteFileUrl
            Else
                bRepeat = False
                For i = 1 To UBound(a_RemoteUrl)
                    If UCase(RemoteFileUrl) = UCase(a_RemoteUrl(i)) Then
                        bRepeat = True
                        Exit For
                    End If
                Next
                If bRepeat = False Then
                    n = n + 1
                    ReDim Preserve a_RemoteUrl(n)
                    a_RemoteUrl(n) = RemoteFileUrl
                End If
            End If
        Next
        ' 开始替换操作
        Dim nFileNum, sContentPath,strFilePath
        sContentPath = RelativePath2RootPath(sUploadDir)
        nFileNum = 0
        For i = 1 To n
            SaveFileType = ;mid(a_RemoteUrl(i), InStrrev(a_RemoteUrl(i), ".") + 1)
            SaveFileName = GetRndFileName(SaveFileType)
            strFilePath = sUploadDir & SaveFileName
            If SaveRemoteFile(strFilePath, a_RemoteUrl(i)) = True Then
                nFileNum = nFileNum + 1
                If nFileNum > 0 Then
                    sOriginalFileName = sOriginalFileName & "|"
                    sSaveFileName = sSaveFileName & "|"
                    sPathFileName = sPathFileName & "|"
                End If
                sOriginalFileName = sOriginalFileName & Mid(a_RemoteUrl(i), InStrRev(a_RemoteUrl(i), "/") + 1)
                sSaveFileName = sSaveFileName & SaveFileName
                sPathFileName = sPathFileName & sContentPath & SaveFileName
                s_Content = Replace(s_Content, a_RemoteUrl(i), sContentPath & SaveFileName, 1, -1, 1)
            End If
        Next

        ChangeRemote = s_Content
    End Function

    Public Function RelativePath2RootPath(url)
'这个主要是实现../转换为实际路径
        Dim sTempUrl
        sTempUrl = url
        If Left(sTempUrl, 1) = "/" Then
            RelativePath2RootPath = sTempUrl
            Exit Function
        End If

        Dim sWebEditorPath
        sWebEditorPath = Request.ServerVARiables("SCRIPT_NAME")
        sWebEditorPath = Left(sWebEditorPath, InStrRev(sWebEditorPath, "/") - 1)
        Do While Left(sTempUrl, 3) = "../"
            sTempUrl = Mid(sTempUrl, 4)
            sWebEditorPath = Left(sWebEditorPath, InStrRev(sWebEditorPath, "/") - 1)
        Loop
        RelativePath2RootPath = sWebEditorPath & "/" & sTempUrl
    End Function

    Public Function GetRndFileName(sExt)
        Dim sRnd
        Randomize
        sRnd = Int(900 * Rnd) + 100
        GetRndFileName = Year(Now) & Month(Now) & Day(Now) & Hour(Now) & Minute(Now) & Second(Now) & sRnd & "." & sExt
    End Function
End Class
%>

脚本宝典总结

以上是脚本宝典为你收集整理的newasp中下载类全部内容,希望文章能够帮你解决newasp中下载类所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: