获取远程服务器数据(asp,adodb.stream,保存远程图片,XMLHTTP)
2010-02-28 09:14
597 查看
下面重新注释了BytesToBstr函数,它的作用是把由xmlhttp.responsebody返回的字节数组转换成文本字符串,如果数据要用做屏幕输入则必须转换否则汉字会出现乱码.
Function BytesToBstr(body)
'Cset:GB2312 UTF-8
dim objstream
set objstream = Server.CreateObject("adodb.stream")
with objstream
.Type = 1 '设置返回数据类型为二进制
.Mode = 3 '打开模式为读写
.Open
.Write body '将指定的数据装入对像中 body为内容
.Position = 0 '指定对像内数据的当前指针
.Type = 2 '设置返回数据类型为文本
.Charset = Cset '设定字符集类型
BytesToBstr = .ReadText '取对象内的文本
.Close
end with
set objstream = nothing
End Function
获取其他服务器的数据和获取文本是一个道理,通过图片的url获取图片的数据处理,只是保存的时候不需要把它转换成字符串了。这里利用adodb.stream的SaveToFile方法将其保存在本地服务器上。
Public function saveimage(tofile)
dim objStream,imgs
imgs=getBody(sUrl)'取得图片的具休内容的过程
Set objStream = Server.CreateObject("ADODB.Stream")'建立ADODB.Stream对象,必须要ADO 2.5以上版本
with objStream
.Type =1'以二进制模式打开
.Open
.write imgs'将字符串内容写入缓冲
.SaveToFile server.mappath(tofile),2'将缓冲的内容写入文件
.Close()
end with
set objstream=nothing
end function
实现了保存文本数据和二进制数据,那就无所不能了*^_^*
附一个包括简单功能类完整代码:
Class xhttp
private cset,sUrl
Private Sub Class_Initialize()
cset="UTF-8"
end sub
Private Sub Class_Terminate()
End Sub
Public Property LET URL(theurl)
sUrl=theurl
end property
public property GET BasePath()
BasePath=mid(sUrl,1,InStrRev(sUrl,"/")-1)
end property
public property GET FileName()
FileName=mid(sUrl,InStrRev(sUrl,"/")+1)
end property
public property GET Html()
Html=BytesToBstr(getBody(sUrl))
end property
private Function BytesToBstr(body)
'Cset:GB2312 UTF-8
dim objstream
set objstream = Server.CreateObject("adodb.stream")
with objstream
.Type = 1 '设置返回数据类型为二进制
.Mode = 3 '打开模式为读写
.Open
.Write body '将指定的数据装入对像中 body为内容
.Position = 0 '指定对像内数据的当前指针
.Type = 2 '设置返回数据类型为文本
.Charset = Cset '设定字符集类型
BytesToBstr = .ReadText '取对象内的文本
.Close
end with
set objstream = nothing
End Function
private function getBody(surl)
dim xmlHttp
set xmlHttp=server.createobject("MSXML2.XMLHTTP")
xmlHttp.open "GET",surl,false
xmlHttp.send
if xmlHttp.readystate<>4 then
exit function
end if
getBody=xmlhttp.responsebody
set xmlHttp=nothing
end function
Public function saveimage(tofile)
dim objStream,imgs
imgs=getBody(sUrl)'取得图片的具休内容的过程
Set objStream = Server.CreateObject("ADODB.Stream")'建立ADODB.Stream对象,必须要ADO 2.5以上版本
with objStream
.Type =1'以二进制模式打开
.Open
.write imgs'将字符串内容写入缓冲
.SaveToFile server.mappath(tofile),2'-将缓冲的内容写入文件
.Close()
end with
set objstream=nothing
end function
end class
TEST:
dim o
set o=new xhttp
o.url="http://www.baidu.com/img/logo-yy.gif"
o.saveimage "blue.gif"
set o=nothing
Function BytesToBstr(body)
'Cset:GB2312 UTF-8
dim objstream
set objstream = Server.CreateObject("adodb.stream")
with objstream
.Type = 1 '设置返回数据类型为二进制
.Mode = 3 '打开模式为读写
.Open
.Write body '将指定的数据装入对像中 body为内容
.Position = 0 '指定对像内数据的当前指针
.Type = 2 '设置返回数据类型为文本
.Charset = Cset '设定字符集类型
BytesToBstr = .ReadText '取对象内的文本
.Close
end with
set objstream = nothing
End Function
获取其他服务器的数据和获取文本是一个道理,通过图片的url获取图片的数据处理,只是保存的时候不需要把它转换成字符串了。这里利用adodb.stream的SaveToFile方法将其保存在本地服务器上。
Public function saveimage(tofile)
dim objStream,imgs
imgs=getBody(sUrl)'取得图片的具休内容的过程
Set objStream = Server.CreateObject("ADODB.Stream")'建立ADODB.Stream对象,必须要ADO 2.5以上版本
with objStream
.Type =1'以二进制模式打开
.Open
.write imgs'将字符串内容写入缓冲
.SaveToFile server.mappath(tofile),2'将缓冲的内容写入文件
.Close()
end with
set objstream=nothing
end function
实现了保存文本数据和二进制数据,那就无所不能了*^_^*
附一个包括简单功能类完整代码:
Class xhttp
private cset,sUrl
Private Sub Class_Initialize()
cset="UTF-8"
end sub
Private Sub Class_Terminate()
End Sub
Public Property LET URL(theurl)
sUrl=theurl
end property
public property GET BasePath()
BasePath=mid(sUrl,1,InStrRev(sUrl,"/")-1)
end property
public property GET FileName()
FileName=mid(sUrl,InStrRev(sUrl,"/")+1)
end property
public property GET Html()
Html=BytesToBstr(getBody(sUrl))
end property
private Function BytesToBstr(body)
'Cset:GB2312 UTF-8
dim objstream
set objstream = Server.CreateObject("adodb.stream")
with objstream
.Type = 1 '设置返回数据类型为二进制
.Mode = 3 '打开模式为读写
.Open
.Write body '将指定的数据装入对像中 body为内容
.Position = 0 '指定对像内数据的当前指针
.Type = 2 '设置返回数据类型为文本
.Charset = Cset '设定字符集类型
BytesToBstr = .ReadText '取对象内的文本
.Close
end with
set objstream = nothing
End Function
private function getBody(surl)
dim xmlHttp
set xmlHttp=server.createobject("MSXML2.XMLHTTP")
xmlHttp.open "GET",surl,false
xmlHttp.send
if xmlHttp.readystate<>4 then
exit function
end if
getBody=xmlhttp.responsebody
set xmlHttp=nothing
end function
Public function saveimage(tofile)
dim objStream,imgs
imgs=getBody(sUrl)'取得图片的具休内容的过程
Set objStream = Server.CreateObject("ADODB.Stream")'建立ADODB.Stream对象,必须要ADO 2.5以上版本
with objStream
.Type =1'以二进制模式打开
.Open
.write imgs'将字符串内容写入缓冲
.SaveToFile server.mappath(tofile),2'-将缓冲的内容写入文件
.Close()
end with
set objstream=nothing
end function
end class
TEST:
dim o
set o=new xhttp
o.url="http://www.baidu.com/img/logo-yy.gif"
o.saveimage "blue.gif"
set o=nothing
相关文章推荐
- ASP使用xmlhttp和Adodb.Stream保存远程文件到本地
- 用ASP VBS xmlhttp adodbstream下载和保存图片的代码
- ASP VBS xmlhttp adodbstream下载和保存图片(新闻小偷)
- 远程获取内容,并将内容存在本地电脑上,包括任何文件!利用xmlhttp和adodb.stream,酷!
- 利用 HttpRequest 得到 GzipStream ,从而获取远程服务器数据库中的数据
- asp用adodb.stream读取服务器上的图片通过浏览器以文件流的形式输出
- ASP 远程图片自动保存到本地服务器
- Asp.Net获取远程数据并保存为文件的简单代码
- jsp获取远程图片保存到本地服务器上方法
- 用ASP VBS xmlhttp adodbstream下载和保存图片的代码
- 使用XMLHttp和ADODB.Stream取得远程文件并保存到本地
- 使用XMLHttp和ADODB.Stream取得远程文件并保存到本地
- ASP远程保存图片
- ASP获取网页全部图片地址并保存为数组的正则
- ASP保存远程图片文件到本地代码
- 利用MSXML2_XmlHttp和Adodb_Stream获取网页的源程序
- php从服务器上下载&保存一个远程图片
- ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合
- Java实现头像截取裁剪后图片保存,获取的是base64数据,怎么转换为图片并保存到数据库。
- 获取远程图片并把它保存到本地