في الوقت الحاضر ، فإن بناء موقع الاستضافة الافتراضية شائعة. لدي أيضًا موقع ويب ، وأنا أيضًا مدير مواقع. بعد ما يقرب من عام من العمل ، أشعر أنه في كل مرة يتم فيها ترقية برنامج الموقع ، أذهب أولاً إلى الموقع الرسمي لقراءة الإعلان ، ثم قم بتنزيل حزمة الترقية إلى المنطقة المحلية ، وإلغاء الضغط ، وتحميل 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)
ن = لين (ThePath)
onerrorresumenext
addtomdb (thepath)
wscript.echo "تم تعبئة الدليل الحالي ، دليل الجذر هو الدليل الحالي"