요즘에는 가상 호스팅 웹 사이트 구축이 인기가 있습니다. 나는 또한 웹 사이트가 있고 웹 마스터이기도합니다. 거의 1 년간의 작업을 마친 후 웹 사이트 프로그램이 업그레이드 될 때마다 공식 웹 사이트로 이동하여 공지를 읽은 다음 업그레이드 패키지를 로컬 영역으로 다운로드하고 FTP를 가상 호스트에 업로드합니다. 이것들은 모두 물리적 인 물리적 작업을 피할 수 있으며 너무 게으르기에는 너무 게으르기 때문에 환상적이며 프로그램을 자동으로 업그레이드 할 수 있다면 좋을 것이라고 생각했습니다. 그래서 나는 그것에 대해 생각 하고이 기사를 썼습니다. 웹 프로그램 개발자에게 도움이되기를 바랍니다. 나는 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 또는 지퍼 패키지가 아니지만 스스로 정의합니다. 예를 들어, 모든 파일을 하나로 분류 한 다음 특수 표시에 따라 분리하십시오. 기성품 방법이 있기 때문에 지금은 그렇게 번거롭지 않습니다. 우리는 그것을 사용하는 방법을 사용합니다 : 모든 파일 (이진 양식)과 경로 정보를 액세스 데이터베이스에 넣습니다.
다음 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 "현재 디렉토리가 패키지되었고 루트 디렉토리는 현재 디렉토리입니다."