De nos jours, la création de sites Web d'hébergement virtuel est populaire. J'ai également un site Web et je suis également un webmaster. Après près d'un an de travail, je pense que chaque fois que le programme du site Web est mis à niveau, je vais d'abord sur le site officiel pour lire l'annonce, puis télécharger le package de mise à niveau vers la région, décompresser et télécharger FTP vers l'hôte virtuel. Ce sont toutes des tâches physiques fatigantes, et je suis trop paresseux pour être très paresseux, donc je suis fantastique et je pensais que ce serait génial si le programme pouvait être automatiquement amélioré. J'y ai donc pensé et j'ai écrit cet article, en espérant que cela sera utile aux développeurs de programmes Web. Ce n'est que pour ASP, car je ne connais que ASP :-(
Examinons d'abord le processus de mise à niveau des programmes Win32 traditionnels (tels que les logiciels antivirus). Il s'appuie sur le programme de mise à niveau logiciel pour se connecter au serveur via le réseau pour analyser et télécharger le fichier de mise à niveau vers la zone locale.
Le programme Web est un peu différent car il s'exécute sur le serveur Web. Il doit finalement écraser les fichiers du serveur de mise à niveau vers le serveur Web, et l'ordinateur du webmaster n'est qu'un transfert. Si vous copiez directement les fichiers sur le serveur de mise à niveau vers le serveur Web (sans transiter le webmaster), la mise à niveau automatique sera réalisée.
Heureusement, le système est livré avec un composant Microsoft.xmlhttp pour accéder au Web. Il peut être appelé dans ASP pour se connecter au serveur de mise à niveau pour télécharger le fichier de mise à niveau.
Le code suivant est un exemple de téléchargement d'un fichier à l'aide de Microsoft.xmlhttp:
<%
SetXpost = createObject ("Microsoft.xmlhttp")
xpost.open "get", "http://www.0x54.org/test.exe", false
xpost.send ()
SetTget = createObject ("adodb.stream")
sget.mode = 3
sget.type = 1
sget.open ()
sget.write (xpost.ResponseBody)
sget.savetofileserver.mappath ("update.exe"), 2
setsget = rien
setSpost = rien
Response.Write ("Télécharger le fichier avec succès! <br>")
%>
Le code ci-dessus est d'enregistrer http://www.0x54.org/test.exe au répertoire actuel du serveur Web. Quant à une plus grande utilisation de Microsoft.xmlhttp, veuillez vérifier MSDN.
S'il existe de nombreux fichiers, Microsoft.xmlhttp sera appelé plusieurs fois pour se connecter au réseau, et certains fichiers peuvent ne pas mettre à jour dans une certaine connexion. Pour éviter cela, il est préférable d'emballer tous les fichiers dans un seul fichier et de le télécharger sur le Web une fois avant de le déballer.
Haha, l'emballage mentionné ici n'est pas Rar ou Zip Package, mais nous le définissons nous-mêmes. Par exemple, épissez tous les fichiers en un seul, puis les séparez en fonction des marques spéciales. Ce n'est pas si gênant maintenant, car il existe une méthode prête à l'emploi. Nous utilisons la méthode de l'utilisation: mettez tous les fichiers (formulaire binaire) et leurs informations de chemin dans la base de données d'accès.
Le fichier VBS suivant (de Ocean Top 2006Plus) consiste à emballer tous les fichiers dans le répertoire actuel:
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 = gauche (thepath, i-1)
n = len (thepath)
Onerrorresumenext
addtomdb (thepath)
Wscript.echo "Le répertoire actuel a été emballé, le répertoire racine est le répertoire actuel"