优秀的软件开发团队:深圳升蓝软件 数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类     
热门推荐
升蓝OA办公自动化系统
基于.Net技术的网络
协同办公环境
 
ASP基础
数据库相关
安全加密
全文检索
ASP应用
打印相关
客户端相关
XML相关
系统相关
正则表达式
ASP技巧
组件开发
脚本编码
FSO专题
邮件相关
远程脚本
性能优化
 
相关链接
深圳升蓝软件:系统集成、办公自动化平台、电子商务、电子政务、Web数据库、企业网站、游戏、手机应用程序、CDMA软件、电子出版物等,为客户提供优秀的解决方案
 
升蓝(www.hi-blue.com)为企业管理、政府办公提供成熟的、易于实施的IT技术服务,我们的解决方案包括OA办公自动化系统CRM客户关系管理系统ERP企业生产管理和订单管理系统电子政务系统、知识管理系统、企业门户、商业智能、工程项目管理等等...
 
电子政务解决方案
塑料/橡胶管理系统
知识管理系统简介
多媒体光盘方案
ERP企业资源管理
订单计划管理系统
PM工程项目管理系统
会员管理系统
相关资料下载
OA办公自动化系统
CRM客户关系管理系统
在线试用版本说明
OA 系统的用户手册
 
 
 
 
升蓝开发团队 > 技术资料 > ASP技术 > XML相关 : 远程获取内容,并将内容存在本地电脑上,包括任何文件

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


March 25,2004
<%
'------------------------------------------------------------------------
'-------------------无垠网域:http://www.5inet.net/ ---------------------
'-------------------作者:嘻哈呵嘿 ,webmaster@5inet.net -----------------
'----------远程获取内容,并将内容存在本地电脑上,包括任何文件!----------
'---------------利用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:inetpubmywebuploadfilecache" & fName,adSaveCreateOverWrite
    '--------------------将缓冲的内容写入文件--------------------------
    'response.BinaryWrite objstream.Read
    objstream.Close()
    set objstream = nothing
    '-----------------------关闭对象,释放资源-------------------------
'response.Write err.Description
End sub
%>
数据库开发 | .Net技术 | ASP技术 | PHP技术 | JSP技术 | 应用技术类 | 升蓝开发小组
Copyright ? 2001-2004 Shenzhen Hi-blue Software Team 升蓝开发小组 All rights reserved