Hoy en día, la construcción de sitios web de alojamiento virtual es popular. También tengo un sitio web y también soy un webmaster. Después de casi un año de trabajo, creo que cada vez que se actualiza el programa del sitio web, primero voy al sitio web oficial para leer el anuncio, luego descargar el paquete de actualización al área local, descomprimir y subir FTP al host virtual. Todas estas son tareas físicas agotador, y soy demasiado vago para ser muy vago, por lo que soy fantástico y pensé que sería genial si el programa pudiera actualizarse automáticamente. Así que lo pensé y escribí este artículo, con la esperanza de que sea útil para los desarrolladores de programas web. Esto es solo para ASP, porque solo conozco ASP :-(
Primero veamos el proceso de actualización de los programas Win32 tradicionales (como el software antivirus). Se basa en el programa de actualización de software para conectarse al servidor a través de la red para analizar y descargar el archivo de actualización al área local.
El programa web es un poco diferente porque se ejecuta en el servidor web. En última instancia, necesita sobrescribir los archivos en el servidor de actualización al servidor web, y la computadora del webmaster es solo una transferencia. Si copia directamente los archivos en el servidor de actualización al servidor web (sin transitar a través del webmaster), se logrará la actualización automática.
Afortunadamente, el sistema viene con un componente Microsoft.xmlhttp para acceder a la web. Se puede llamar a ASP para conectarse al servidor de actualización para descargar el archivo de actualización.
El siguiente código es un ejemplo de descarga de un archivo usando microsoft.xmlhttp:
<%
SetXpost = createObject ("Microsoft.xmlhttp")
xpost.open "get", "http://www.0x54.org/test.exe", falso
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 = nada
setspost = nada
Response.write ("Descargue el archivo con éxito! <br>")
%>
El código anterior es guardar http://www.0x54.org/test.exe en el directorio actual del servidor web. En cuanto a más uso de Microsoft.xmlhttp, consulte MSDN.
Si hay muchos archivos, Microsoft.xmlhttp se llamará varias veces para conectarse a la red, y algunos archivos pueden no actualizar en una conexión determinada. Para evitar esto, es mejor empaquetar todos los archivos en un solo archivo y descargarlo en Web una vez antes de desempacarlo.
Jaja, el empaque mencionado aquí no es un paquete RAR o zip, pero lo definimos nosotros mismos. Por ejemplo, emplome todos los archivos en uno y luego los separe de acuerdo con las marcas especiales. No es tan problemático ahora, porque hay un método listo. Utilizamos el método de usarlo: coloque todos los archivos (formulario binario) y su información de ruta en la base de datos de acceso.
El siguiente archivo VBS (de Ocean Top 2006Plus) es empaquetar todos los archivos en el directorio actual:
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 = izquierda (thepath, i-1)
n = len (thepath)
OnerrorResumEnext
addTomDB (thepath)
Wscript.echo "El directorio actual ha sido empaquetado, el directorio raíz es el directorio actual"