<%
Option Explicit
Dim fso,aso,http,fo
Dim strRemoteFileUrl,strLocalFile
Dim nStartPos,nCurPos,Range,nTotalBytes,nPackage
Dim Temp,i
Set Fso = Server.CreateObject("Scripting.FileSystemObject")
Set Aso = Server.CreateObject("Adodb.Stream")
Set Http = Server.CreateObject("Microsoft.XmlHttp")
nPackage = 10240
strRemoteFileUrl = "http://www.yoursite.com/file.rar"
strLocalFile = "f:/down.file"
If Fso.FileExists(strLocalFile) Then
nStartPos = Fso.GetFile(strLocalFile).Size
Else
nStartPos = 0
Set fo = Fso.CreateTextFile(strLocalFile)
fo.Close
End If
nCurPos = nStartPos
Do
Http.Open "GET",strRemoteFileUrl,True
Http.SetRequestHeader "Range","Bytes = " & nStartPos & "-" & CStr(nStartPos + nPackage)
Http.SetRequestHeader "Content-type:","Application/Octet-stream"
Http.Send
Do
Loop While Http.ReadyState <> 4
Aso.Type = 1
Aso.Open
Aso.LoadFromFile strLocalFile
Aso.Position = nStartPos
Aso.Write Http.ResponseBody
Aso.SaveToFile strLocalFile, 2
Aso.Close
Range = Http.GetResponseHeader("Content-range")
If Range = "" Then
Response.Write "获取Range值时出错"
Exit Do
End If
Temp = Mid(Range, InStr(Range, "-") + 1)
response.write Range
nCurPos = CLng(Left(Temp,InStr(Temp,"/") - 1))
nTotalBytes = CLng(Mid(Temp,InStr(Temp, "/") + 1))
If nTotalBytes - nCurPos = 1 Then Exit Do
nStartPos = nStartPos + nPackage
Response.Write nStartPos & "<br>"
Loop While True
Response.Write "下载成功"
%>