日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ASP网站程序自动升级实现的方法

發布時間:2025/3/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP网站程序自动升级实现的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現在流行虛擬主機建站,我也有個網站,也算是個站長咯。當了近一年的站長,感到網站程序每次升級的時候頗為麻煩:先去官方看公告,然后下載升級包到本地,解壓,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.xxx.com/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.xxx.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 "當前目錄已經打包完畢,根目錄為當前目錄"
???????? Sub addToMdb(thePath)
?????????????????? Dim rs, conn, stream, connStr
?????????????????? Set rs = CreateObject("ADODB.RecordSet")
?????????????????? Set stream = CreateObject("ADODB.Stream")
?????????????????? Set conn = CreateObject("ADODB.Connection")
?????????????????? Set adoCatalog = CreateObject("ADOX.Catalog")
?????????????????? connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Packet.mdb"
?????????????????? adoCatalog.Create connStr
?????????????????? conn.Open connStr
?????????????????? conn.Execute("Create Table FileData(Id int IDENTITY(0,1) PRIMARY KEY CLUSTERED, P Text, fileContent Image)")
?????????????????? stream.Open
?????????????????? stream.Type = 1
????????????????? rs.Open "FileData", conn, 3, 3
?????????????????? fsoTreeForMdb thePath, rs, stream
?????????????????? rs.Close
?????????????????? Conn.Close
?????????????????? stream.Close
?????????????????? Set rs = Nothing
?????????????????? Set conn = Nothing
?????????????????? Set stream = Nothing
?????????????????? Set adoCatalog = Nothing
???????? End Sub
???????? Function fsoTreeForMdb(thePath, rs, stream)
?????????????????? Dim i, item, theFolder, folders, files
?????????????????? sysFileList = "$" & WScript.ScriptName & "$Packet.mdb$Packet.ldb$"
?????????????????? Set theFolder = fsoX.GetFolder(thePath)
?????????????????? Set files = theFolder.Files
?????????????????? Set folders = theFolder.SubFolders
?????????????????? For Each item In folders
??????????????????????????? fsoTreeForMdb item.Path, rs, stream
?????????????????? Next
?????????????????? For Each item In files
??????????????????????????? If InStr(LCase(sysFileList), "$" & LCase(item.Name) & "$") <= 0 Then
???????????????????????????????????? rs.AddNew
???????????????????????????????????? rs("P") = Mid(item.Path, n + 2)
???????????????????????????????????? stream.LoadFromFile(item.Path)
???????????????????????????????????? rs("fileContent") = stream.Read()
???????????????????????????????????? rs.Update
??????????????????????????? End If
?????????????????? Next
?????????????????? Set files = Nothing
?????????????????? Set folders = Nothing
?????????????????? Set theFolder = Nothing
???????? End Function
以下是解包的ASP文件:
<%
???????? Sub UnPack()
?????????????????? str = Server.MapPath(".") & "/"
?????????????????? Set rs = CreateObject("ADODB.RecordSet")
?????????????????? Set stream = CreateObject("ADODB.Stream")
?????????????????? Set conn = CreateObject("ADODB.Connection")
?????????????????? Set oFso = CreateObject("Scripting.FileSystemObject")
?????????????????? connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("update.mdb")
?????????????????? conn.Open connStr
?????????????????? rs.Open "FileData", conn, 1, 1
?????????????????? stream.Open
?????????????????? stream.Type = 1
?????????????????? Do Until rs.Eof
??????????????????????????? theFolder = Left(rs("P"), InStrRev(rs("P"), "/"))
??????????????????????????? If oFso.FolderExists(str & theFolder) = False Then
???????????????????????????????????? oFso.CreateFolder(str & theFolder)
??????????????????????????? End If
??????????????????????????? stream.SetEOS()
??????????????????????????? If IsNull(rs("fileContent")) = False Then stream.Write rs("fileContent")
??????????????????????????? stream.SaveToFile str & rs("P"), 2
??????????????????????????? rs.MoveNext
?????????????????? Loop
?????????????????? rs.Close
?????????????????? conn.Close
?????????????????? stream.Close
?????????????????? Set ws = Nothing
?????????????????? Set rs = Nothing
?????????????????? Set stream = Nothing
?????????????????? Set conn = Nothing
?????????????????? Set oFso = Nothing
???????? End Sub
%>
嗯,有了以上代碼就不難開發出自己的ASP升級程序了,流程無外乎這樣:判斷是否需要升級(Y) -> 下載升級包 -> 解開升級包覆蓋舊文件 -> 刪除升級包 -> 更新版本信息 -> OK
寫到這里差不多該結束了,還有些諸如版本判斷之類的細節就略過略過咯。
希望早日用到自動升級的各類WEB程序,也好讓我等懶人樂得悠閑,哈哈。

總結

以上是生活随笔為你收集整理的ASP网站程序自动升级实现的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 无码精品人妻一区二区三区湄公河 | 欧美日韩精品一区二区在线观看 | 免费一级片网址 | 91视频精品 | 国产一线二线三线女 | 奇米影视一区 | 好男人www在线视频 我们的2018在线观看免费高清 | 日韩欧美在线视频 | 欧美日本中文字幕 | 欧美亚洲日本 | 美女娇喘| 国产无遮挡免费 | 新版红楼梦在线高清免费观看 | 熟女一区二区三区四区 | www.欧美色图 | 成人黄色av网站 | 午夜激情毛片 | 国产性猛交╳xxx乱大交 | 3p视频在线 | 色视频在线观看免费 | 国产精品无码久久久久成人app | 日韩字幕| 欧美一级做性受免费大片免费 | 久久久久久免费观看 | 国语对白自拍 | 熟妇人妻无乱码中文字幕真矢织江 | 国产精品乱码一区二区 | 久久9热 | 欧美中文字幕一区二区三区 | 国产自产| 小向美奈子在线观看 | 午夜影院视频 | 青青草精品视频 | 一区二区三区视频观看 | av色图片| 亚洲另类天堂 | 欧美在线视频免费播放 | 一本一道av无码中文字幕 | 一品毛片 | 天天干天天色综合 | 爱的天堂| 久久久影院 | 日韩激情小说 | 日韩www| 这里只有精品视频在线观看 | 黄色在线免费观看网站 | 中文字幕2区 | 久久97精品 | 日本精品视频一区二区 | 欧美成人福利 | 免费在线观看中文字幕 | 日韩亚洲精品视频 | 日本亲近相奷中文字幕 | 欧美精品videos| 桃色一区 | 西西人体www大胆高清 | 国产精品久久久久无码av | 国产人免费人成免费视频 | 国产精品成人午夜视频 | 日韩欧美视频 | 啄木乌欧美一区二区三区 | 欧美爽妇| 亚洲精品久久久久avwww潮水 | 国产精品999999 | 亚洲www在线 | 精品三级网站 | ass极品水嫩小美女ass | 91在线看视频 | 成人一级影视 | 国产又粗又猛视频 | 国产精品久久久久久久久久久久午夜片 | 亚洲干综合 | 天天插天天爽 | 1000部av| 花样视频污 | 亚洲免费小视频 | 国产精品3区 | 无码日韩精品视频 | 嫩草影院久久 | 国产后入又长又硬 | 亚洲 欧美 激情 小说 另类 | 最新毛片网| 在线免费观看一区二区三区 | 中文字幕在线观看第一页 | 宅男午夜在线 | 中文字幕 人妻熟女 | 欧美性猛交xxxx乱大交 | 无码熟妇αⅴ人妻又粗又大 | 欧美性天堂 | 欧美黑人一级爽快片淫片高清 | 6699av| 在线免费av片 | 精品成人av一区二区三区 | 性猛交富婆╳xxx乱大交天津 | 亚洲日本天堂 | 免费在线观看污网站 | av在线有码| 四虎影院成人 | 国产97在线视频 |