佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 利用xmlhttp和adodb.stream加緩存技術(shù)下載遠程Web文件

利用xmlhttp和adodb.stream加緩存技術(shù)下載遠程Web文件

熱門標簽:Linux服務器 電子圍欄 銀行業(yè)務 科大訊飛語音識別系統(tǒng) 團購網(wǎng)站 阿里云 Mysql連接數(shù)設置 服務器配置

%
'----------遠程獲取內(nèi)容,并將內(nèi)容存在本地電腦上,包括任何文件!----------
'---------------利用xmlhttp和adodb.stream-----------------
'On Error Resume Next
'-------------------------------定義輸出格式-----------------------------
path=request("path")
if path ="" then
path="http://pcqc.86516.com/index.asp"
'這里定義的網(wǎng)址是百度,,注意一定要有文件后綴
end if

sPath = Path
if left(lcase(path),7) > "http://" then
'-------------如果前面沒有http就是本地文件,交給LocalFile處理------------
LocalFile(path)
else
'--------------------否則為遠程文件,交給RemoteFile處理------------------
RemoteFile(Path)
end if
'Response.Write err.Description
'--------------處理函數(shù)-----------

sub LocalFile(Path)
'-------------------如果為本地文件則簡單的跳轉(zhuǎn)到該頁面-------------------
'Response.Redirect Path
Response.write "發(fā)生錯誤!"
End Sub
Sub RemoteFile(sPath)
'-------------------------處理遠程文件函數(shù)------------------------------
FileName = GetFileName(sPath)
'-------------GetFileName為把地址轉(zhuǎn)換為合格的文件名過程-------------
FileName = Server.MapPath("Cache/" FileName)
Set objFso = Server.CreateObject("Scripting.FileSystemObject")
'Response.Write fileName
if objFso.FileExists(FileName) Then
'--------------檢查文件是否是已經(jīng)訪問過,如是,則簡單跳轉(zhuǎn)------------
Response.Redirect "cache/" GetFileName(path)
Else
'----------------否則的話就先用GetBody函數(shù)讀取----------------------
'Response.Write Path
t = GetBody(Path)
'-----------------用二進制方法寫到瀏覽器上--------------------------
Response.BinaryWrite t
Response.Flush
'-----------------輸出緩沖------------------------------------------
SaveFile t,GetFileName(path)
'------------------將文件內(nèi)容緩存到本地路徑,以待下次訪問-----------
End if
Set objFso = Nothing
End Sub

Function GetBody(url)
'-----------------------本函數(shù)為遠程獲取內(nèi)容的函數(shù)---------------------
'on error resume next
'Response.Write url
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
'----------------------建立XMLHTTP對象-----------------------------
With Retrieval
.Open "Get", url, False, "", ""
'------------------用Get,異步的方法發(fā)送-----------------------
.Send
'GetBody = .ResponseText
GetBody = .ResponseBody
'------------------函數(shù)返回獲取的內(nèi)容--------------------------
End With
Set Retrieval = Nothing
'response.Write err.Description
End Function

Function GetFileName(str)
'-------------------------本函數(shù)為合格化的文件名函數(shù)-------------------
str = Replace(lcase(str),"http://","")
str = Replace(lcase(str),"http://","/")
str = Replace(str,"?","")
str = Replace(str,"","")
str = Replace(str,"/","")
str = replace(str,vbcrlf,"")
GetFileName = str
End Function

sub SaveFile(str,fName)
'-------------------------本函數(shù)為將流內(nèi)容存盤的函數(shù)-------------------
'on error resume next
Set objStream = Server.CreateObject("ADODB.Stream")
'--------------建立ADODB.Stream對象,必須要ADO 2.5以上版本---------
'objStream.Type = adTypeBinary
objStream.Type = 1
'-------------以二進制模式打開-------------------------------------
objStream.Open
objstream.write str
'--------------------將字符串內(nèi)容寫入緩沖--------------------------
'response.Write fname
'路徑注意
objstream.SaveToFile "E:\webroot\pcqc\vip\UploadFile\cache\"fName,2
'objstream.SaveToFile "d:\cache\" fName,adSaveCreateOverWrite
'--------------------將緩沖的內(nèi)容寫入文件--------------------------
'response.BinaryWrite objstream.Read
objstream.Close()
set objstream = nothing
'-----------------------關閉對象,釋放資源-------------------------
'response.Write err.Description
End sub

function saveimage(from,tofile)
dim geturl,objStream,imgs
geturl=trim(from)
imgs=gethttppage(geturl)'取得圖片的具休內(nèi)容的過程
Set objStream = Server.CreateObject("ADODB.Stream")'建立ADODB.Stream對象,必須要ADO 2.5以上版本
objStream.Type =1'以二進制模式打開
objStream.Open
objstream.write imgs'將字符串內(nèi)容寫入緩沖
objstream.SaveToFile server.mappath(tofile),2'-將緩沖的內(nèi)容寫入文件
objstream.Close()'關閉對象
set objstream=nothing
end function
%>

您可能感興趣的文章:
  • 用ASP VBS xmlhttp adodbstream下載和保存圖片的代碼
  • 利用MSXML2.XmlHttp和Adodb.Stream采集圖片
  • 使用asx3m與xstream配合解決flex與java利用httpservice傳遞xml數(shù)據(jù)問題
  • php中突破基于HTTP_REFERER的防盜鏈措施(stream_context_create)
  • php錯誤提示failed to open stream: HTTP request failed!的完美解決方法
  • HttpResponse的Output與OutputStream、Filter關系與區(qū)別介紹
  • 利用stream實現(xiàn)一個簡單的http下載器

標簽:棗莊 衡水 廣元 大理 衢州 萍鄉(xiāng) 江蘇 蚌埠

巨人網(wǎng)絡通訊聲明:本文標題《利用xmlhttp和adodb.stream加緩存技術(shù)下載遠程Web文件》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    专栏| 保靖县| 卫辉市| 鹤壁市| 三穗县| 宁强县| 株洲县| 三台县| 沅陵县| 济宁市| 阿拉善右旗| 嵊州市| 嘉兴市| 海兴县| 读书| 鹰潭市| 望都县| 仙桃市| 吉林省| 义乌市| 安康市| 阜城县| 淮南市| 新津县| 广河县| 岳池县| 山东| 雷州市| 施甸县| 阳高县| 和田市| 色达县| 于都县| 闸北区| 黔西县| 张家港市| 辉县市| 东乡族自治县| 峨眉山市| 南昌县| 宕昌县|