利用ASP下载远程文件到服务器

调用download方法就可以下载文件了,程序会自动获取文件名,如果获取失败会以dat后缀保存文件
<
'函数名:WritFile
'
作用:把指定二进制数据写入文件
'
参数:byt--二进制数据,file--要写入的文件名
public Function WritFile(ByVal byt, ByVal fileName)'写入文件函数
on error resume next
Dim objAso:set objAso=server.createobject("adodb.Stream")
     objAso.Type 
= 1
     objAso.Mode 
= 3
     objAso.Open
     objAso.Position 
= 0
     objAso.Write byt
     objAso.SaveToFile fileName, 
2
     objAso.Close
     
Set objAso = Nothing
     WritFile 
= True
End Function

'函数名:Download
'
作用:下载文件
'
参数:URL-要获取的URL,savePath为文件保存地址
Public Function Download(ByVal URL, ByVal savePath)
On Error Resume Next
Dim ResBody, sStr, vPath, fileName, vErr
vErr 
= True
vPath 
= Replace(savePath, "/""\")
If Right(vPath, 1<> "\" Then vPath = vPath & "\"
sPos 
= InStrRev(URL, "/"+ 1
sStr 
= Mid(URL, sPos)
Set Http = Server.CreateObject("MICROSOFT.XMLHTTP")
Http.Open 
"GET", URL, False
Http.Send
If Http.Readystate = 4 Then
If Http.Status = 200 Then
     ResBody 
= Http.responseBody
        head 
= Http.getResponseHeader("content-disposition")
        
If head <> "" Then
           startpos 
= InStr(head, "="+ 1
           fileName 
= Mid(head, startpos)
        
ElseIf InStr(sStr, "."> 0 And InStr(sStr, "?"<= 0 Then
           fileName 
= sStr
        
Else
           fileName 
= Getname() & ".dat"
        
End If
        
If WritFile(ResBody, vPath & fileName) Then vErr = False
End If
End If
Download 
= Not vErr
End Function

'函数名:getname
'
作用:按日期获取随机数字
public Function Getname()
on error resume next
    
Dim y,m,d,h,mm,S, r
    
Randomize
    y 
= Year(Now)
    m 
= Month(Now): If m < 10 Then m = "0" & m
    d 
= Day(Now): If d < 10 Then d = "0" & d
    h 
= Hour(Now): If h < 10 Then h = "0" & h
    mm 
= Minute(Now): If mm < 10 Then mm = "0" & mm
    S 
= Second(Now): If S < 10 Then S = "0" & S
    r 
= 0
    r 
= CInt(Rnd() * 1000)
    
If r < 10 Then r = "00" & r
    
If r < 100 And r >= 10 Then r = "0" & r
    Getname 
= y & m & d & h & mm & S & r
End Function

call download("http://www.baidu.com/img/baidu_logo.gif",server.mappath("."))
%
>

posted on 2009-07-30 14:32  韩显川  阅读(357)  评论(0)    收藏  举报

导航