ทุกวันนี้การสร้างเว็บไซต์โฮสติ้งเสมือนเป็นที่นิยม ฉันยังมีเว็บไซต์และฉันก็เป็นเว็บมาสเตอร์ด้วย หลังจากทำงานเกือบหนึ่งปีฉันรู้สึกว่าทุกครั้งที่โปรแกรมเว็บไซต์ได้รับการอัพเกรดฉันไปที่เว็บไซต์อย่างเป็นทางการก่อนเพื่ออ่านประกาศจากนั้นดาวน์โหลดแพ็คเกจอัปเกรดไปยังพื้นที่ท้องถิ่น Decompress และอัปโหลด FTP ไปยังโฮสต์เสมือนจริง ทั้งหมดนี้เป็นงานทางกายภาพที่เหนื่อยล้าและฉันขี้เกียจเกินไปที่จะขี้เกียจมากดังนั้นฉันจึงยอดเยี่ยมและคิดว่ามันจะดีถ้าโปรแกรมสามารถอัพเกรดโดยอัตโนมัติ ดังนั้นฉันจึงคิดเกี่ยวกับเรื่องนี้และเขียนบทความนี้โดยหวังว่ามันจะเป็นประโยชน์กับนักพัฒนาโปรแกรมเว็บ นี่เป็นเพียง ASP เพราะฉันรู้เพียง ASP :-(
ก่อนอื่นให้ดูที่กระบวนการอัปเกรดของโปรแกรม Win32 แบบดั้งเดิม (เช่นซอฟต์แวร์ป้องกันไวรัส) ขึ้นอยู่กับโปรแกรมอัพเกรดซอฟต์แวร์เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ผ่านเครือข่ายเพื่อวิเคราะห์และดาวน์โหลดไฟล์อัปเกรดไปยังพื้นที่ท้องถิ่น
โปรแกรมเว็บแตกต่างกันเล็กน้อยเนื่องจากทำงานบนเว็บเซิร์ฟเวอร์ ในที่สุดก็ต้องเขียนทับไฟล์บนเซิร์ฟเวอร์อัพเกรดไปยังเว็บเซิร์ฟเวอร์และคอมพิวเตอร์ของเว็บมาสเตอร์เป็นเพียงการถ่ายโอน หากคุณคัดลอกไฟล์บนเซิร์ฟเวอร์อัพเกรดโดยตรงไปยังเว็บเซิร์ฟเวอร์ (โดยไม่ต้องผ่านเว็บมาสเตอร์) การอัพเกรดอัตโนมัติจะทำได้
โชคดีที่ระบบมาพร้อมกับส่วนประกอบ Microsoft.xmlhttp สำหรับการเข้าถึงเว็บ สามารถเรียกได้ใน ASP เพื่อเชื่อมต่อกับเซิร์ฟเวอร์อัพเกรดเพื่อดาวน์โหลดไฟล์อัปเกรด
รหัสต่อไปนี้เป็นตัวอย่างของการดาวน์โหลดไฟล์โดยใช้ microsoft.xmlhttp:
-
setxpost = createObject ("microsoft.xmlhttp"))
xpost.open "get", "http://www.0x54.org/test.exe", false
xpost.send ()
setSget = createObject ("adodb.stream")
sget.mode = 3
sget.type = 1
sget.open ()
sget.write (xpost.responsebody)
sget.savetofileserver.mappath ("update.exe"), 2
setSget = ไม่มีอะไร
setSpost = ไม่มีอะไร
Response.write ("ดาวน์โหลดไฟล์ได้สำเร็จ! <br>")
-
รหัสข้างต้นคือการบันทึก http://www.0x54.org/test.exe ไปยังไดเรกทอรีปัจจุบันของเว็บเซิร์ฟเวอร์ สำหรับการใช้งานมากขึ้นของ microsoft.xmlhttp โปรดตรวจสอบ msdn
หากมีไฟล์จำนวนมาก Microsoft.xmlhttp จะถูกเรียกหลายครั้งเพื่อเชื่อมต่อกับเครือข่ายและบางไฟล์อาจไม่สามารถอัปเดตในการเชื่อมต่อที่แน่นอน เพื่อหลีกเลี่ยงสิ่งนี้เป็นการดีที่สุดที่จะจัดทำแพ็คเกจไฟล์ทั้งหมดลงในไฟล์เดียวและดาวน์โหลดไปยังเว็บหนึ่งครั้งก่อนที่จะเปิดออก
ฮ่าฮ่าบรรจุภัณฑ์ที่กล่าวถึงที่นี่ไม่ใช่แพ็คเกจ RAR หรือ ZIP แต่เรากำหนดเอง ตัวอย่างเช่นแยกไฟล์ทั้งหมดออกเป็นหนึ่งไฟล์แล้วแยกออกตามเครื่องหมายพิเศษ ตอนนี้มันไม่ลำบากมากนักเพราะมีวิธีการทำสำเร็จรูป เราใช้วิธีการใช้งาน: ใส่ไฟล์ทั้งหมด (แบบฟอร์มไบนารี) และข้อมูลเส้นทางของพวกเขาลงในฐานข้อมูลการเข้าถึง
ไฟล์ VBS ต่อไปนี้ (จาก Ocean Top 2006Plus) คือการจัดเก็บไฟล์ทั้งหมดในไดเรกทอรีปัจจุบัน:
dimn, ws, fsox, thepath
setws = createObject ("wscript.shell")
setfsox = createObject ("scripting.filesystemobject"))
ThePath = ws.exec ("CMD/CCD"). stdout.readall () & "/"
I = Instr (ThePath, Chr (13))
ThePath = ซ้าย (ThePath, I-1)
n = len (thepath)
onerrorresumenext
addtomdb (thepath)
wscript.echo "ไดเรกทอรีปัจจุบันได้รับการบรรจุแล้วไดเรกทอรีรากคือไดเรกทอรีปัจจุบัน"