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


ASP #远程 #文件2012-05-11 13:17
<% 
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 
''''''''''''''''''''''''''''''''''''''''''''''''''''' 
%>

相关文章

粤ICP备11097351号-1