当前位置: 首页 > 图文教程 > 网络编程 > ASP > newasp中下载类

ASP
[原创]asp下用实现模板加载的的几种方法总结
asp下利用fso实现文件夹或文件移动改名等操作函数
asp cint clng的范围与防止cint和clng的溢出解决方法大全
asp防范跨站点脚本攻击的的方法
独孤剑写的马克斯迅雷片库采集插件1.4 官方最新版提供下载了
根据日期得到生肖的ASP函数
不错的主要用于加密的vbs(asp)位移运算类
Script.VBS.Agent.ai juan.vbs专杀
循环取值Request.QueryString的用法
asp下实现字符串的补充fill()
无服务器做任意二级米子站
几种另类的ASP后门
asp事物功能简单小应用
ASP获取网页全部图片地址并保存为数组的正则
通过客户端验证上传图片文件大小的ASP源码
asp下计算分页的几种方法
谈动态多行多列,循环行和列,输出M行N列的ASP代码
asp在线执行sql语句的函数
asp正则html的图片,对图自动缩放大小
文件名 正则表达式提取方法

ASP 中的 newasp中下载类


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 206 ::
收藏到网摘: n/a

复制代码 代码如下:

<%
'================================================
' 函数名: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
%>