asp读取远程文件并保存到本地代码

  <%

  dim act,ifLogin,loginUrl,loginActUrl,loginData,fileUrl,fileName

  act=request.QueryString("act")

  if(act="do") then

  ifLogin=Cint(request.QueryString("ifLogin"))

  loginActUrl=request.Form("loginActUrl")

  loginData=request.Form("loginData")

  fileUrl=request.Form("fileUrl")

  fileName=mid(fileUrl,instrrev(fileUrl,"/")+1)

  extPos=instrrev(fileName,"?")

  if(extPos>0) then

  fileName=left(fileName,extPos-1)

  end if

  if(ifLogin=1) then

  call PostHttpPage(loginActUrl,loginData)

  end if

  call DownloadFile(fileUrl,fileName)

  else

  %>

  <form name="form1" method="post" action="?act=do">

  <p>是否登录:

  <input name="ifLogin" type="radio" value="1">

  是

  <input name="ifLogin" type="radio" value="0" checked>

  否  </p>

  <p>登录提交地址:

  <input name="loginActUrl" type="text" size="50">

  </p>

  <p>

  登录数据:<input name="loginData" type="text" size="50">

  </p>

  <p>

  要保存的远程文件URL:

  <input name="fileUrl" type="text" size="50">

  </p>

  <p>

  <input type="submit" name="Submit" value="提交">

  <input type="reset" name="Submit2" value="重写">

  </p>

  </form>

  <%

  end if

  Function BytesToBstr(body,code)

  dim objstream

  set objstream = Server.CreateObject("adodb.stream")

  objstream.Type = 1

  objstream.Mode =3

  objstream.Open

  objstream.Write body

  objstream.Position = 0

  objstream.Type = 2

  objstream.Charset =code

  BytesToBstr = objstream.ReadText

  objstream.Close

  set objstream = nothing

  End Function

  Function PostHttpPage(loginActUrl,PostData)

  Dim xmlHttp

  Dim RetStr

  Set xmlHttp = CreateObject("Microsoft.XMLHTTP")

  xmlHttp.Open "POST", loginActUrl, False

  XmlHTTP.setRequestHeader "Content-Length",Len(PostData)

  xmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

  xmlHttp.Send PostData

  If Err.Number <> 0 Then

  Set xmlHttp=Nothing

  response.Write("提交登录时出错!提交数据:"&PostData)

  Exit Function

  End If

  PostHttpPage=BytesToBstr(xmlHttp.responseBody,"GB2312")

  Set xmlHttp = nothing

  End Function

  '''''''''''''''''''''''''''''''''''''''''''

  function DownloadFile(url,filename)

  Set xml = Server.CreateObject("Msxml2.XMLHTTP") '创建对象

  xml.Open "GET",url,False

  xml.Send '发送请求

  if Err.Number>0 then

  Response.Status="404"

  else

  Response.ContentType="application/octet-stream"

  Response.AddHeader "Content-Disposition:","attachment; filename=" & filename

  Range=Mid(Request.ServerVariables("HTTP_RANGE"),7)

  if Range="" then

  Response.BinaryWrite(xml.responseBody)

  else

  S.position=Clng(Split(Range,"-")(0))

  Response.BinaryWrite(xml.responseBody)

  End if

  end if

  Response.End

  Set xml = Nothing

  end function

  '''''''''''''''''''''''''''''''''''''''''''''''''''''

  %>