ASP คลาสอัปเกรดออนไลน์
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-06-26 18:09:15
-
######################################################################## ## ##################################
Rem ## คำสั่งคลาสอัปเกรดออนไลน์
คลาส Cls_oUpdate
######################################################################## ## ##############
Rem ## คำอธิบาย: ASP คลาสอัปเกรดออนไลน์
Rem ## เวอร์ชัน: 1.0.0
เรม ## ผู้เขียน: เซียวหยูเหริน
เรม ## MSN: xiaoyuehen(at)msn.com
Rem ## กรุณาแทนที่ (at) ด้วย @
Rem ## ลิขสิทธิ์: เนื่องจากมีการแชร์จึงไม่มีลิขสิทธิ์ แต่จะต้องจำกัดอยู่เพียงการเผยแพร่ทางออนไลน์และไม่สามารถใช้ในสื่อแบบดั้งเดิมได้!
Rem ## หากคุณสามารถรักษาคำแนะนำเหล่านี้ได้ ฉันจะขอบคุณมากยิ่งขึ้น!
Rem ## หากคุณมีการเพิ่มประสิทธิภาพโค้ดที่ดีขึ้นและการปรับปรุงที่เกี่ยวข้อง โปรดอย่าลืมบอกฉัน ขอบคุณมาก!
######################################################################## ## ##############
LocalVersion สาธารณะ, LastVersion, ประเภทไฟล์
UrlVersion สาธารณะ, UrlUpdate, UpdateLocalPath, ข้อมูล
ประวัติ URL สาธารณะ
sstrVersionList ส่วนตัว, sarrVersionList, sintLocalVersion, sstrLocalVersion
sstrLogContent ส่วนตัว, sstrHistoryContent, sstrUrlUpdate, sstrUrlLocal
######################################################################## ## ##############
Class_Initialize ส่วนตัว ()
Rem ## URL ที่สมบูรณ์ของข้อมูลเวอร์ชัน เริ่มต้นด้วย http://
Rem ## ตัวอย่าง: http://localhost/software/Version.htm
UrlVersion = ""
Rem ## อัปเกรด URL เริ่มต้นด้วย http:// และลงท้ายด้วย /
Rem ## ตัวอย่าง: http://localhost/software/
URL อัปเดต = ""
Rem ## Local update directory เริ่มต้นด้วย / และลงท้ายด้วย / เริ่มต้นด้วย / ใช้สำหรับอัปเดตไซต์ปัจจุบัน
Rem ## โปรแกรมจะตรวจสอบว่ามีไดเร็กทอรีอยู่หรือไม่ หากไม่มี มันจะถูกสร้างขึ้นโดยอัตโนมัติ
UpdateLocalPath = "/"
Rem ## ไฟล์ประวัติซอฟต์แวร์ที่สร้างขึ้น
UrlHistory = "history.htm"
Rem ## ข้อความแจ้งล่าสุด
ข้อมูล = ""
Rem ## เวอร์ชั่นปัจจุบัน
เวอร์ชันท้องถิ่น = "1.0.0"
Rem ## เวอร์ชั่นล่าสุด
เวอร์ชันล่าสุด = "1.0.0"
Rem ## ชื่อส่วนต่อท้ายของไฟล์ข้อมูลแต่ละเวอร์ชัน
ประเภทไฟล์ = ".asp"
จบหมวดย่อย
######################################################################## ## ##############
######################################################################## ## ##############
Class_Terminate ส่วนตัวย่อย ()
จบหมวดย่อย
######################################################################## ## ##############
Rem ## ดำเนินการอัปเกรด
######################################################################## ## ##############
ฟังก์ชั่นสาธารณะ doUpdate()
doUpdate = เท็จ
UrlVersion = ตัดแต่ง (UrlVersion)
UrlUpdate = ตัดแต่ง (UrlUpdate)
Rem ## อัปเกรดการตรวจจับ URL
ถ้า (ซ้าย(UrlVersion, 7) <> " http://"<IMG SRC="smile/05.gif"> หรือ (ซ้าย(UrlUpdate, 7) <> " http://"<IMG SRC="smile /05.gif">จากนั้น
ข้อมูล = "URL การตรวจหาเวอร์ชันว่างเปล่า URL อัปเกรดว่างเปล่าหรือมีรูปแบบไม่ถูกต้อง (#1)"
ฟังก์ชั่นออก
สิ้นสุดถ้า
ถ้าใช่(UrlUpdate, 1) <> "/" จากนั้น
sstrUrlUpdate = อัปเดต URL & "/"
อื่น
sstrUrlUpdate = UrlUpdate
สิ้นสุดถ้า
ถ้าใช่(UpdateLocalPath, 1) <> "/" จากนั้น
sstrUrlLocal = UpdateLocalPath & "/"
อื่น
sstrUrlLocal = UpdateLocalPath
สิ้นสุดถ้า
Rem ## ข้อมูลเวอร์ชันปัจจุบัน (หมายเลข)
sstrLocalVersion = LocalVersion
sintLocalVersion = แทนที่(sstrLocalVersion, ".", ""<IMG SRC="smile/05.gif">
sintLocalVersion = toNum (sintLocalVersion, 0)
Rem ## Version Detection (เริ่มต้นข้อมูลเวอร์ชันและเปรียบเทียบ)
ถ้า IsLastVersion ให้ออกจากฟังก์ชัน
Rem ## เริ่มการอัพเกรด
doUpdate = ตอนนี้อัพเดต()
LastVersion = sstrLocalVersion
สิ้นสุดฟังก์ชัน
######################################################################## ## ##############
Rem ## ตรวจสอบว่าเป็นเวอร์ชันล่าสุดหรือไม่
######################################################################## ## ##############
ฟังก์ชั่นส่วนตัว IsLastVersion()
Rem ## เริ่มต้นข้อมูลเวอร์ชัน (เริ่มต้นอาร์เรย์ sarrVersionList)
ถ้า iniVersionList แล้ว
Rem ## ถ้าสำเร็จเทียบเวอร์ชั่นครับ
ดิม ไอ
IsLastVersion = จริง
สำหรับ i = 0 ถึง UBound (sarrVersionList)
ถ้า sarrVersionList(i) > sintLocalVersion แล้ว
Rem ## หากมีเวอร์ชั่นล่าสุดให้ออกจากวงครับ
IsLastVersion = เท็จ
ข้อมูล = "เป็นเวอร์ชันล่าสุดแล้ว!"
ออกเพื่อ
สิ้นสุดถ้า
ต่อไป
อื่น
Rem ## มิฉะนั้นให้ส่งคืนข้อความแสดงข้อผิดพลาด
IsLastVersion = จริง
ข้อมูล = "เกิดข้อผิดพลาดในการรับข้อมูลเวอร์ชัน!(#2)"
สิ้นสุดถ้า
สิ้นสุดฟังก์ชัน
######################################################################## ## ##############
Rem ## ตรวจสอบว่าเป็นเวอร์ชันล่าสุดหรือไม่
######################################################################## ## ##############
ฟังก์ชั่นส่วนตัว iniVersionList()
iniVersionList = เท็จ
Dim strVersion
strVersion = getVersionList()
Rem ## หากค่าที่ส่งคืนว่างเปล่า การเริ่มต้นจะล้มเหลว
ถ้า strVersion = "" แล้ว
ข้อมูล = "ข้อผิดพลาด......"
ฟังก์ชั่นออก
สิ้นสุดถ้า
sstrVersionList = แทนที่(strVersion, " ", ""<IMG SRC="smile/05.gif">
sarrVersionList = แยก (sstrVersionList, vbCrLf)
iniVersionList = จริง
สิ้นสุดฟังก์ชัน
######################################################################## ## ##############
Rem ## ตรวจสอบว่าเป็นเวอร์ชันล่าสุดหรือไม่
######################################################################## ## ##############
ฟังก์ชั่นส่วนตัว getVersionList()
getVersionList = GetContent(UrlVersion)
สิ้นสุดฟังก์ชัน
######################################################################## ## ##############
Rem ## เริ่มอัพเดตครับ
######################################################################## ## ##############
ฟังก์ชั่นส่วนตัว NowUpdate()
ดิม ไอ
สำหรับ i = UBound(sarrVersionList) ถึง 0 ขั้นตอน -1
โทร doUpdateVersion (sarrVersionList (i))
ต่อไป
ข้อมูล = "อัปเกรดเสร็จสมบูรณ์! <a href=""" & sstrUrlLocal & UrlHistory & """>ดู</a>"
สิ้นสุดฟังก์ชัน
######################################################################## ## ##############
Rem ## เนื้อหาเวอร์ชันอัปเดต
######################################################################## ## ##############
ฟังก์ชั่นส่วนตัว doUpdateVersion (strVer)
doUpdateVersion = เท็จ
ติ่มอินท์เวอร์ชั่น
intVer = toNum(แทนที่(strVer, ".", ""<IMG SRC="smile/05.gif">, 0)
Rem ## หากเวอร์ชันที่อัปเดตมีขนาดเล็กกว่าเวอร์ชันปัจจุบัน ให้ออกจากการอัปเดต
ถ้า intVer <= sintLocalVersion แล้ว
ฟังก์ชั่นออก
สิ้นสุดถ้า
Dim strFileListContent, arrFileList, strUrlUpdate
strUrlUpdate = sstrUrlUpdate & intVer & ประเภทไฟล์
strFileListContent = GetContent(strUrlUpdate)
ถ้า strFileListContent = "" แล้ว
ฟังก์ชั่นออก
สิ้นสุดถ้า
Rem ## อัพเดตหมายเลขเวอร์ชันปัจจุบัน
sintLocalVersion = intVer
sstrLocalVersion = strVer
ติ่มซำ arrTmp
Rem ## รับรายการไฟล์อัพเดต
arrFileList = แยก (strFileListContent, vbCrLf)
Rem ## อัพเดตบันทึก
sstrLogContent = ""
sstrLogContent = sstrLogContent & strVer & quot; & vbCrLf
Rem ## เริ่มอัพเดตครับ
สำหรับ i = 0 ถึง UBound (arrFileList)
Rem ## รูปแบบการอัปเดต: หมายเลขเวอร์ชัน/file.htm|ไฟล์ปลายทาง
arrTmp = แยก(arrFileList(i), "|"<IMG SRC="smile/05.gif">
sstrLogContent = sstrLogContent & vbTab & arrTmp(1)
โทร doUpdateFile (intVer & "/" & arrTmp (0), arrTmp (1))
ต่อไป
Rem ## เขียนลงไฟล์บันทึก
sstrLogContent = sstrLogContent & ตอนนี้() & vbCrLf
response.Write("<pre>" & sstrLogContent & "</pre>"<IMG SRC="smile/05.gif">
โทร sDoCreateFile(Server.MapPath(sstrUrlLocal & "Log" & intVer & ".htm"<IMG SRC="smile/05.gif">, _ "<pre>" & sstrLogContent & "</pre>"<IMG SRC ="ยิ้ม/05.gif">
โทร sDoAppendFile(Server.MapPath(sstrUrlLocal & UrlHistory), "<pre>" & _ strVer & "_______" & Now() & "</pre>" & vbCrLf)
สิ้นสุดฟังก์ชัน
######################################################################## ## ##############
Rem ## อัพเดตไฟล์
######################################################################## ## ##############
ฟังก์ชั่นส่วนตัว doUpdateFile (strSourceFile, strTargetFile)
Dim strContent
strContent = GetContent (sstrUrlUpdate & strSourceFile)
Rem ## อัปเดตและเขียนลงในบันทึก
ถ้า sDoCreateFile(Server.MapPath(sstrUrlLocal & strTargetFile), strContent) จากนั้น
sstrLogContent = sstrLogContent & "ความสำเร็จ" & vbCrLf
อื่น
sstrLogContent = sstrLogContent & "ล้มเหลว" & vbCrLf
สิ้นสุดถ้า
สิ้นสุดฟังก์ชัน
######################################################################## ## ##############
Rem ## รับเนื้อหาจากระยะไกล
######################################################################## ## ##############
ฟังก์ชั่นส่วนตัว GetContent (strUrl)
รับเนื้อหา = ""
Dim oXhttp, strContent
ตั้งค่า oXhttp = Server.CreateObject("Microsoft.XMLHTTP"<IMG SRC="smile/05.gif">
'เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป'
ด้วย oXhttp
. เปิด "GET", strUrl, False, "", ""
.ส่ง
ถ้า .readystate <> 4 จากนั้นออกจากฟังก์ชัน
strContent = .การตอบสนองร่างกาย
strContent = sBytesToBstr (strContent)
จบด้วย
ตั้งค่า oXhttp = ไม่มีเลย
ถ้า Err.Number <> 0 แล้ว
การตอบสนองเขียน(ข้อผิดพลาดคำอธิบาย)
ผิดพลาด.เคลียร์
ฟังก์ชั่นออก
สิ้นสุดถ้า
GetContent = strContent
สิ้นสุดฟังก์ชัน
######################################################################## ## ##############
######################################################################## ## ##############
Rem ## การเข้ารหัสการแปลงไบนารี่ => สตริง
ฟังก์ชั่นส่วนตัว sBytesToBstr(vIn)
dimobjStream
ตั้ง objStream = Server.CreateObject("adodb.stream"<IMG SRC="smile/05.gif">
objStream.Type = 1
objStream โหมด = 3
objStream.เปิด
objStream.เขียน vIn
objStream.ตำแหน่ง = 0
objStream.Type = 2
objStream.Charset = "GB2312"
sBytesToBstr = objStream.ReadText
objStream ปิด
ตั้งค่า objStream = ไม่มีเลย
สิ้นสุดฟังก์ชัน
######################################################################## ## ##############
######################################################################## ## ##############
Rem ## การเข้ารหัสการแปลงไบนารี่ => สตริง
ฟังก์ชั่นส่วนตัว sDoCreateFile (strFileName, ByRef strContent)
sDoCreateFile = เท็จ
Dim strPath
strPath = ซ้าย(strFileName, InstrRev(strFileName, "", -1, 1))
Rem ## ตรวจสอบความถูกต้องของเส้นทางและชื่อไฟล์
ถ้าไม่ใช่(CreateDir(strPath)) ให้ออกจากฟังก์ชัน
'ถ้าไม่ใช่ (CheckFileName(strFileName)) ให้ออกจากฟังก์ชัน
'response.Write (strFileName)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
สลัว fso, f
ตั้งค่า fso = CreateObject("Scripting.FileSystemObject"<IMG SRC="smile/05.gif">
ตั้งค่า f = fso.OpenTextFile (strFileName, ForWriting, True)
ฉ. เขียน strContent
ฉ.ปิด
ตั้งค่า fso = ไม่มีเลย
กำหนดให้ f = ไม่มีเลย
sDoCreateFile = จริง
สิ้นสุดฟังก์ชัน
######################################################################## ## ##############
######################################################################## ## ##############
Rem ## การเข้ารหัสการแปลงไบนารี่ => สตริง
ฟังก์ชั่นส่วนตัว sDoAppendFile (strFileName, ByRef strContent)
sDoAppendFile = เท็จ
Dim strPath
strPath = ซ้าย(strFileName, InstrRev(strFileName, "", -1, 1))
Rem ## ตรวจสอบความถูกต้องของเส้นทางและชื่อไฟล์
ถ้าไม่ใช่(CreateDir(strPath)) ให้ออกจากฟังก์ชัน
'ถ้าไม่ใช่ (CheckFileName(strFileName)) ให้ออกจากฟังก์ชัน
'response.Write (strFileName)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
สลัว fso, f
ตั้งค่า fso = CreateObject("Scripting.FileSystemObject"<IMG SRC="smile/05.gif">
ตั้งค่า f = fso.OpenTextFile(strFileName, ForAppending, True)
ฉ. เขียน strContent
ฉ.ปิด
ตั้งค่า fso = ไม่มีเลย
กำหนดให้ f = ไม่มีเลย
sDoAppendFile = จริง
สิ้นสุดฟังก์ชัน
######################################################################## ## ##############
Rem ## โปรแกรมสำหรับสร้างไดเร็กทอรี หากมีไดเร็กทอรีหลายระดับ ให้สร้างทีละระดับ
######################################################################## ## ##############
ฟังก์ชั่นส่วนตัว CreateDir (ByVal strLocalPath)
หรี่ฉัน, strPath, objFolder, tmpPath, tmptPath
หรี่ arrPathList, intLevel
'เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป'
strPath = แทนที่(strLocalPath, "", "/"<IMG SRC="smile/05.gif">
ตั้งค่า objFolder = server.CreateObject("Scripting.FileSystemObject"<IMG SRC="smile/05.gif">
arrPathList = แยก(strPath, "/"<IMG SRC="smile/05.gif">
intLevel = UBound(arrPathList)
สำหรับฉัน = 0 ถึง intLevel
ถ้าฉัน = 0 แล้ว
tmptPath = arrPathList(0) & "/"
อื่น
tmptPath = tmptPath & arrPathList(I) & "/"
สิ้นสุดถ้า
tmpPath = ซ้าย (tmptPath, Len (tmptPath) - 1)
หากไม่ใช่ objFolder.FolderExists(tmpPath) จากนั้น objFolder.CreateFolder tmpPath
ต่อไป
ตั้ง objFolder = ไม่มีเลย
ถ้า Err.Number <> 0 แล้ว
CreateDir = เท็จ
ผิดพลาด.เคลียร์
อื่น
CreateDir = จริง
สิ้นสุดถ้า
สิ้นสุดฟังก์ชัน
######################################################################## ## ##############
Rem ## การแปลงจำนวนเต็มยาว
######################################################################## ## ##############
ฟังก์ชั่นส่วนตัว toNum (s, ค่าเริ่มต้น)
ถ้า IsNumeric(s) และ s <> "" แล้ว
toNum = CLng
อื่น
toNum = ค่าเริ่มต้น
สิ้นสุดถ้า
สิ้นสุดฟังก์ชัน
######################################################################## ## ##############
จบคลาส
######################################################################## ## ##################################
-