专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Asp教程 » 获取本地ip:远程获取内容,并将内容存在本地电脑上,包括任何文件 »正文

获取本地ip:远程获取内容,并将内容存在本地电脑上,包括任何文件

来源: 发布时间:星期四, 2009年2月12日 浏览:331次 评论:0


<%
\'------------------------------------------------------------------------
\'-------------------无垠网域:http://www.5inet.net/ ---------------------
\'-------------------作者:嘻哈呵嘿 ,[email protected] -----------------
\'----------远程获取内容并将内容存在本地电脑上包括任何文件!----------
\'---------------利用xmlhttp和adodb.stream,酷!绝对原创!-----------------
\'On Error Resume Next
\'Set the content type to the specic type that you are sending.
\'Response.ContentType = \"IMAGE/JPEG\"
\'-------------------------------定义输出格式-----------------------------


Path=request.query(\"p\")
sPath = Path
left(l(path),7) <> \"http://\" then
\'-------------如果前面没有http就是本地文件交给LocalFile处理------------
LocalFile(path)

\'--------------------否则为远程文件交给RemoteFile处理------------------
RemoteFile(Path)
end
\'Response.Write err.Description

sub LocalFile(Path)
\'-------------------如果为本地文件则简单跳转到该页面-------------------
Response.Redirect Path
End Sub

Sub RemoteFile(sPath)
\'-------------------------处理远程文件------------------------------
FileName = GetFileName(sPath)
\'-------------GetFileName为把地址转换为合格文件名过程-------------
FileName = Server.MapPath(\"/UploadFile/Cache/\" & FileName)
Set objFso = Server.CreateObject(\"Scripting.FileObject\")
\'Response.Write fileName
objFso.FileExists(FileName) Then
\'--------------检查文件是否是已经访问过,如是则简单跳转------------
Response.Redirect \"/uploadfile/cache/\" & GetFileName(path)
Else
\'----------------否则话就先用GetBody读取----------------------
\'Response.Write Path
t = GetBody(Path)
\'-----------------用 2进制思路方法写到浏览器上--------------------------
Response.BinaryWrite t
Response.Flush
\'-----------------输出缓冲------------------------------------------
SaveFile t,GetFileName(path)
\'------------------将文件内容缓存Cache到本地路径以待下次访问-----------
End
Set objFso = Nothing
End Sub

Function GetBody(url)
\'-----------------------本为远程获取内容---------------------
\'on error resume next
\'Response.Write url
Set Retrieval = CreateObject(\"Microsoft.XMLHTTP\")
\'----------------------建立XMLHTTP对象-----------------------------
With Retrieval
.Open \"Get\", url, False, \"\", \"\"
\'------------------用Get异步思路方法发送-----------------------
.Send
\'GetBody = .ResponseText
GetBody = .ResponseBody
\'------------------返回获取内容--------------------------
End With
Set Retrieval = Nothing
\'response.Write err.Description
End Function

Function GetFileName(str)
\'-------------------------本为合格化文件名-------------------
str = Replace(l(str),\"http://\",\"\")
str = Replace(l(str),\"//\",\"/\")
str = Replace(str,\"/\",\"\")
str = replace(str,vbcrlf,\"\")
GetFileName = str
End Function

sub SaveFile(str,fName)
\'-------------------------本为将流内容存盘-------------------
\'on error resume next
Set objStream = Server.CreateObject(\"ADODB.Stream\")
\'--------------建立ADODB.Stream对象必须要ADO 2.5以上版本---------
objStream.Type = adTypeBinary
\'-------------以 2进制模式打开-------------------------------------
objStream.Open
objstream.write str
\'--------------------将串内容写入缓冲--------------------------
\'response.Write fname
objstream.SaveToFile \"c:\\inetpub\\myweb\\uploadfile\\cache\\\" & fName,adSaveCreateOverWrite
\'--------------------将缓冲内容写入文件--------------------------
\'response.BinaryWrite objstream.Read
objstream.Close
objstream = nothing
\'-----------------------关闭对象释放资源-------------------------
\'response.Write err.Description
End sub
%>

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: