asp读取远程文件并保存到本地代码
            网络编程 发布日期:2025/11/1 浏览次数:1
         
        
            正在浏览: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 
''''''''''''''''''''''''''''''''''''''''''''''''''''' 
%>