首页 电脑 电脑学堂 查看内容

远程获取内容并存在本地电脑上

2004-11-12 08:05 715 0

摘要: 作者:傲少 程序代码:               &n...
关键词: nbsp Response 函数 objStream Write 文件 str GetFileName path 内容

作者:傲少 程序代码:                   <%                  '---------------利用xmlhttp和adodb.stream,酷!绝对原创!-----------------                  'On Error Resume Next                  'Set the content type to the specific type that you are                   sending.                  'Response.ContentType = "IMAGE/JPEG"                  '-------------------------------定义输出格式-----------------------------                  Path=request.querystring("p")                  sPath = Path                  if left(lcase(path),7) <> "http://" then                   '-------------如果前面没有http就是本地文件,交给LocalFile处理------------                  LocalFile(path)                  else                  '--------------------否则为远程文件,交给RemoteFile处理------------------                  RemoteFile(Path)                  end if                  '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.FileSystemObject")                  'Response.Write fileName                  if objFso.FileExists(FileName) Then                  '--------------检查文件是否是已经访问过,如是,则简单跳转------------                  Response.Redirect "/uploadfile/cache/" & GetFileName(path)                  Else                  '----------------否则的话就先用GetBody函数读取----------------------                  'Response.Write Path                  t = GetBody(Path)                  '-----------------用二进制方法写到浏览器上--------------------------                  Response.BinaryWrite t                  Response.Flush                  '-----------------输出缓冲------------------------------------------                  SaveFile t,GetFileName(path)                  '------------------将文件内容缓存到本地路径,以待下次访问-----------                  End if                   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(lcase(str),"http://","")                  str = Replace(lcase(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                  '-------------以二进制模式打开-------------------------------------                  objStream.Open                  objstream.write str                  '--------------------将字符串内容写入缓冲--------------------------                  'response.Write fname                  objstream.SaveToFile "c:\inetpub\myweb\uploadfile\cache\" &                   fName,adSaveCreateOverWrite                  '--------------------将缓冲的内容写入文件--------------------------                  'response.BinaryWrite objstream.Read                   objstream.Close()                  set objstream = nothing                  '-----------------------关闭对象,释放资源-------------------------                  'response.Write err.Description                   End sub                  %>
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部