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

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

 

<% '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 %>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值