启天配资(股指期货配资)

现在盛行虚拟主机建站,我也有个站,也算是个站长咯。当了近一年的站长,感到站程序每次晋级的时分较为费事:先去官方看公告,然后下载晋级包到本地,解压,FTP上传到虚拟主机。这些都是累人的体力活,加之自己又懒得很,所以想入非非的觉得要是程序能够主动晋级就好了。所以就想了想,写了本文,期望对WEB程序开发者有协助。这儿只针对ASP,由于我只会ASP:-(

先看看传统的win32程序的晋级进程(比方杀毒软件),它是依托软件的晋级程序经过络衔接到服务器剖析并下载晋级文件到本地。

WEB程序有点不一样,由于它是运转于WEB服务器。它最终是要把晋级服务器上的文件掩盖到WEB服务器,站长的电脑仅仅中转。假如直接把晋级服务器上的文件Copy到WEB服务器(而不经过站长中转)那就完成了主动晋级。

好在体系自带了一个Microsoft.XMLHTTP组件用于拜访WEB,在ASP中能够调用它来完成衔接晋级服务器下载晋级文件。

以下代码是运用Microsoft.XMLHTTP下载文件的比方:

以下为引证的内容:

<%

SetxPost=CreateObject(Microsoft.XMLHTTP)

xPost.OpenGET,:///test.exe,False

xPost.Send()

SetsGet=CreateObject(ADODB.Stream)

sGet.Mode=3

sGet.Type=1

sGet.Open()

sGet.Write(xPost.responseBody)

sGet.SaveToFileServer.MapPap(update.exe),2

setsGet=noping

setsPOST=noping

response.Write(下载文件成功!

)

%>

上面代码便是把://xxx.org/test.exe保存到WEB服务器当时目录,至于Microsoft.XMLHTTP的更多用法仍是看看MSDN吧。

假如文件比较多,就会屡次调用Microsoft.XMLHTTP衔接络,就可能呈现某次衔接失利部分文件未能更新的状况,为了防止这种状况,最好是把一切文件打包为一个文件一次下载到WEB后再解包。

呵呵,这儿说的打包可不是RAR或许ZIP包,而是咱们自己界说。比方把一切文件拼接为一个,然后再依据特别的记号分隔。现在没这么费事咯,由于有个现成的方法,咱们运用拿来主义便是:把一切文件(二进制方式)及其途径信息放入Access数据库。

下面这个vbs文件(来自海洋顶端2006Plus)便是打包当时目录的一切文件的:

以下为引证的内容:

Dimn整站排名优化",ws,fsoX,pePap

Setws=CreateObject(WScript.Shell)

SetfsoX=CreateObject(Scripting.FileSystemObject)

pePap=ws.Exec(cmd/ccd).StdOut.ReadAll()&\

i=InStr(pePap,Chr(13))

pePap=Left(pePap,i-1)

n=len(pePap)

OnErrorResumeNext

启天配资(股指期货配资)

addToMdb(pePap)

Wscript.Echo当时目录现已打包结束,根目录为当时目录

SubaddToMdb(pePap)

Dimrs,conn,stream,软文推行"connStr

Setrs=CreateObject(ADODB.RecordSet)

Setstream=CreateObject(ADODB.Stream)

Setconn=CreateObject(ADODB.Connection)

SetadoCatalog=CreateObject(ADOX.Catalog)

connStr=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=Packet.mdb

adoCatalog.CreateconnStr

conn.OpenconnStr

conn.Execute(CreateTableFileData(IdintIDENTITY(0,1)PRIMARYKEYCLUSTERED,PText,fileContentImage))

stream.Open

stream.Type=1

rs.OpenFileData,conn,3,3

fsoTreeForMdbpePap,rs百度搜索引擎优化排名",stream

rs.Close

Conn.Close

stream.Close

Setrs=Noping

Setconn=Noping

Setstream=Noping

SetadoCatalog=Noping

EndSub

FunctionfsoTreeForMdb(pePap,rs,stream)

Dimi,item,peFolder,folders,files

sysFileList=$&WScript.ScriptName&$Packet.mdb$Packet.ldb$

SetpeFolder=fsoX.GetFolder(pePap)

Setfiles=peFolder.Files

Setfolders=peFolder.SubFolders

ForEachitemInfolders

fsoTreeForMdbitem.Pap,rs,stream

Next

ForEachitemInfiles

IfInStr(LCase(sysFileList),$&LCase(item.Name)&$)<=0Then

rs.AddNew

rs(P)=Mid(item.Pap,n+2)

stream.LoadFromFile(item.Pap)

rs(fileContent)=stream.Read()

rs.Update

EndIf

Next

Setfiles=Noping

Setfolders=Noping

SetpeFolder=Noping

EndFunction

以下是解包的ASP文件:

以下为引证的内容:

<%

SubUnPack()

str=Server.MapPap(.)&\

Setrs=CreateObject(ADODB.RecordSet)

Setstream=CreateObject(ADODB.Stream)

Setconn=CreateObject(ADODB.Connection)

SetoFso=CreateObject(Scripting.FileSystemObject)

connStr=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=&Server.MapPap(update.mdb)

conn.OpenconnStr

rs.OpenFileData,conn,1,1

stream.Open

stream.Type=1

DoUntilrs.Eof

peFolder=Left(rs(P),InStrRev(rs(P),\))

IfoFso.FolderExists(str&peFolder)=FalseThen

oFso.CreateFolder(str&peFolder)

EndIf

stream.SetEOS()

IfIsNull(rs(fileContent))=FalseThenstream.Writers(fileContent)

stream.SaveToFilestr&rs(P),2

rs.MoveNext

Loop

rs.Close

conn.Close

stream.Close

Setws=Noping

Setrs=Noping

Setstream=Noping

Setconn=Noping

SetoFso=Noping

EndSub

%>

有了以上代码就不难开发出自己的ASP晋级程序了,流程无外乎这样:判别是否需求晋级(Y)->下载晋级包->解开晋级包掩盖旧文件->删去晋级包->更新版别信息->OK

,

本文来自:软文推行蜓云ruanwen.tingclouds

发布于 2022-03-27 00:48:27
收藏
分享
海报
10
目录