作家
登录

newasp中下载类

作者: 来源:www.28hudong.com 2013-03-30 08:58:40 阅读 我要评论

复制代码 代码如下:<% '================================================ ' 函数名: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使用MYSQL数据库全攻略

你觉得这个网站能够值200万元人民币吗?它上面有1000个弹格,一个弹格只卖50元,总共却可以卖到200万,这是为什么呢?它叫壹仟弹格,www.1kTag.com,来看看吧! 壹仟弹格的第一天 1000个弹格怎么能够卖到200万? >>>详细阅读


本文标题:newasp中下载类

地址:http://www.17bianji.com/kaifa2/ASP/33071.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)