newasp中下载类

所属分类: 网络编程 / ASP编程 阅读数: 394
收藏 0 赞 0 分享
复制代码 代码如下:

<%
'================================================
' 函数名: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
%>
更多精彩内容其他人还在看

asp知识整理笔记4(问答模式)

这是关于asp知识整理的最后一份笔记,希望大家仔细阅读。
收藏 0 赞 0 分享

ASP基础知识VBScript基本元素讲解

这篇文章主要介绍了ASP基础知识VBScript基本元素的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP编码和解码函数详解

这篇文章主要介绍了ASP编码和解码函数的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP显示页面执行时间的方法

这篇文章主要介绍了ASP显示页面执行时间的方法,在本地测试一下输出页面需要多少时间,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP基础入门第一篇(ASP技术简介)

本文将以 Active Server Pages 为中心,向你全面展示制作动态商业网站的步骤和技巧并通过大量的实例,让你在不断的理论和实践之中笑傲“网络”……
收藏 0 赞 0 分享

ASP基础入门第二篇(ASP基础知识)

这篇文章是ASP基础入门第二篇,第一篇展示了ASP动态网站设计的一些最基本的方法,相信通过实践各位对 ASP 已经有了最基本的了解,本文将进一步介绍ASP动态网站的一些基本技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP基础入门第三篇(ASP脚本基础)

通过前两篇的学习,相信各位已经对 ASP 的动态网站设计有了一个基本的概念和整体的印象。从本篇开始作者将从脚本语言的使用着手,由浅入深地带领大家探索 ASP 动态网站设计的真正奥秘。
收藏 0 赞 0 分享

ASP基础入门第四篇(脚本变量、函数、过程和条件语句)

大家在学习了脚本语言 VBScript 的变量、常量和过程的基本概念后,本期将继续向各位介绍 VBScript 的函数和语法。
收藏 0 赞 0 分享

ASP基础入门第五篇(ASP脚本循环语句)

在本文上两篇中,我们学习了脚本语言 VBScript 的变量、函数、过程和条件语句,本篇将继续给大家介绍 VBScipt 的循环语句,并对脚本语言在 ASP 中的应用加以总结。  
收藏 0 赞 0 分享

ASP基础入门第六篇(ASP内建对象Request)

从本篇开始作者从 ASP 内建对象着手,为大家详细剖析 ASP 的六个内建对象和各种组件的特性和方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多