XBOX

  PHP博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  13 随笔 :: 87 文章 :: 0 评论 :: 0 Trackbacks

sS_r = "http://"
sU_r = Split(Request.ServerVariables("SERVER_NAME")&Request.ServerVariables("script_name"),"/")

for i=0 to ubound(sU_r)
 if i<ubound(sU_r) then
  sS_r = sS_r + sU_r(i) + "/"
 end if
next

Function htmll(mulu,htmlmulu,FileName,filefrom,vena,venb,venc,vend)

if htmlmulu="" then htmlmulu=""

if mulu="" then
mulu=indexmulu&mulu
FilePath=Server.MapPath(mulu)&"\"&FileName
else
mulu=Server.MapPath(indexmulu)&mulu
FilePath=mulu&"\"&FileName
end if

htmlmulu=indexmulu&htmlmulu

Do_Url=sS_r&filefrom
Do_Url=Do_Url&"?"&vena&venb&"&"&venc&vend
strUrl=Do_Url

set objXmlHttp=Server.createObject("Microsoft.XMLHTTP")
objXmlHttp.open "GET",strUrl,false
objXmlHttp.send()
binFileData=objXmlHttp.responseBody
Set objXmlHttp=Nothing

set objAdoStream=Server.createObject("ADODB.Stream")
objAdoStream.Type=1
objAdoStream.Open()
objAdoStream.Write(binFileData)
objAdoStream.SaveToFile FilePath,2
objAdoStream.Close()
set objAdoStream=nothing
End Function

------------------------------------------------    -----------------------------------------------------
1.在服务器端的xmlhttp.Open("GET",url,false)异步必须是关闭的,而客户端的异步是打开的
因为服务器返回的代码要求一次性完成,若把异步打开 不等数据没有抓举完毕就返回给客户端了

2. 在服务器端的xmlhttp.Responsebody 这里用的是Responsebody而不是ResponseText或ResponseXml, 一开始我是用ResponseText,但在函数bytesToBSTR转换编码的时候提示错误,经过比较发现其他的asp小偷程序里的代码都是 Responsebody.分析后,发现Responsebody ResponseText ResponseXML的差别如下

ResponseText 返回数据为字符性文本数据 数据源为任何文本性数据
ResponseXML 返回数据为DOM对象,可以用JS通过DOM进行加工控制的,单源数据必须是XML
Responsebody 返回的是二进制数据,可以通过Adodb.Stream进行加工控制,数据源可以为任何数据

posted on 2009-06-16 14:31 XBOX 阅读(303) 评论(0)  编辑 收藏 引用 网摘

只有注册用户登录后才能发表评论。
网站导航: