国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP 程序實現自動升級功能

2024-05-04 10:59:06
字體:
來源:轉載
供稿:網友
現在流行虛擬主機建站,我也有個網站,也算是個站長咯。當了近一年的站長,感到網站程序每次升級的時候頗為麻煩:先去官方看公告,然后下載升級包到本地,解壓,FTP上傳到虛擬主機。這些都是累人的體力活,加之本人又懶得很,所以異想天開的覺得要是程序能夠自動升級就好了。所以就想了想,寫了本文,希望對WEB程序開發者有幫助。這里只針對ASP,因為我只會ASP :-(
先看看傳統的win32程序的升級過程(比如殺毒軟件),它是依靠軟件的升級程序通過網絡連接到服務器分析并下載升級文件到本地。
WEB程序有點不一樣,因為它是運行于WEB服務器。它最終是要把升級服務器上的文件覆蓋到WEB服務器,站長的電腦只是中轉。如果直接把升級服務器上的文件Copy到WEB服務器(而不通過站長中轉)那就實現了自動升級。
好在系統自帶了一個 Microsoft.XMLHTTP 組件用于訪問WEB,在ASP中可以調用它來實現連接升級服務器下載升級文件。
以下代碼是利用 Microsoft.XMLHTTP下載文件的例子:

<%
Set xPost = CreateObject("Microsoft.XMLHTTP")
xPost.Open "GET","http://www.0x54.org/test.exe",False
xPost.Send()
Set sGet = CreateObject("ADODB.Stream")
sGet.Mode = 3
sGet.Type = 1
sGet.Open()
sGet.Write(xPost.responseBody)
sGet.SaveToFile Server.MapPath("update.exe"),2
set sGet = nothing
set sPOST = nothing
response.Write("下載文件成功!<br>")
%> 


上面代碼就是把 http://www.0x54.org/test.exe保存到WEB服務器當前目錄,至于Microsoft.XMLHTTP 的更多用法還是看看MSDN吧。
如果文件比較多,就會多次調用Microsoft.XMLHTTP連接網絡,就可能出現某次連接失敗部分文件未能更新的情況,為了避免這種情況,最好是把所有文件打包為一個文件一次下載到WEB后再解包。
呵呵,這里說的打包可不是RAR或者ZIP包,而是我們自己定義。比如把所有文件拼接為一個,然后再根據特殊的記號分開?,F在沒這么麻煩咯,因為有個現成的辦法,我們使用拿來主義就是:把所有文件(二進制形式)及其路徑信息放入Access數據庫。
下面這個vbs文件(來自海洋頂端2006Plus)就是打包當前目錄的所有文件的:

Dim n, ws, fsoX, thePath
Set ws = CreateObject("WScript.Shell")
Set fsoX = CreateObject("Scripting.FileSystemObject")
thePath = ws.Exec("cmd /c cd").StdOut.ReadAll() & "/"
i = InStr(thePath, Chr(13))
thePath = Left(thePath, i - 1)
n = len(thePath)
On Error Resume Next
addToMdb(thePath)
Wscript.Echo "當前目錄已經打包完畢,根目錄為當前目錄"
上一篇:vbcrlf的意思

下一篇:[ASP]精華代碼

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浦江县| 聊城市| 八宿县| 金沙县| 屯昌县| 黄平县| 耿马| 海南省| 溧水县| 博湖县| 获嘉县| 同心县| 红原县| 西平县| 曲松县| 东兴市| 项城市| 台安县| 安图县| 军事| 龙州县| 武山县| 洪雅县| 鄂托克前旗| 池州市| 河曲县| 济阳县| 蒲江县| 腾冲县| 双牌县| 罗江县| 昭通市| 丰台区| 张家口市| 溧阳市| 叶城县| 奎屯市| 原平市| 徐州市| 普陀区| 建德市|