利用ASP下载远程文件到服务器
生活随笔
收集整理的這篇文章主要介紹了
利用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("."))
%>
<%?
'函數名: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("."))
%>
轉載于:https://www.cnblogs.com/hanwater/archive/2009/07/30/1535038.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的利用ASP下载远程文件到服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 免费源码赠送之 pwm (vhdl)
- 下一篇: 小偷的精神