ASP在线升级程序
2008-02-23 09:46:51来源:互联网 阅读 ()
<%
'文件名:updata.asp
'远程地址
const url="http://localhost/test/"
action=request("action")
if action="updata" then
download(url&"config.txt")
download(url&"pack.jpg")
response.Write("下载成功<a href='updata.asp?action=install'>安装</a>")
elseif action="install" then
str=openfile("config.txt")
if str="" then
response.write "缺少本地配置文件config.txt"
else
size=RegExpTest("size",str)
call install("pack.jpg",size)
end if
else
str=getpage(url&"config.txt")
if str="" then
response.write "不存在可用更新或者本地配置不正确"
response.end
end if
str1=openfile("config.txt")
if str1="" then
response.write "缺少本地配置文件config.txt无法获知本地程序的安装时间"
response.end
end if
updatatime=RegExpTest("time",str)
updatatime1=RegExpTest("time",str1)
if DateDiff("d",updatatime1,updatatime)>0 then
response.Write("存在可用更新,更新日期:"&updatatime&"<a href='updata.asp?action=updata'>下载</a>")
else
response.write "您的程序是最新的了"
end if
end if
function openfile(filename)
set fso=server.CreateObject("scripting.filesystemobject")
if fso.fileexists(server.MapPath(filename)) then
set f1=fso.opentextfile(server.mappath(filename),1,true)
openfile=f1.readall
f1.close
else
openfile=""
end if
set fso=nothing
end function
function getpage(url)
set xmlhttp=server.createobject("Microsoft.XMLHTTP")
xmlhttp.open "get",url,false
xmlhttp.send
if xmlhttp.status<>200 then
getpage=""
else
getpage=bytes2BSTR(xmlhttp.ResponseBody)
end if
end function
Function bytes2BSTR(vIn)
dim strReturn
dim i,ThisCharCode,NextCharCode
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i 1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 CInt(NextCharCode))
i = i 1
End If
Next
bytes2BSTR = strReturn
End Function
Function RegExpTest(patrn,strng)
Dim regEx,Match,Matches'建立变量。
Set regEx = New RegExp'建立正则表达式。
regEx.Pattern = patrn&"=(. ?)\n"'设置模式。
regEx.IgnoreCase = True'设置是否区分字符大小写。
regEx.Global = True'设置全局可用性。
Set Matches = regEx.Execute(strng)'执行搜索。
For Each Match in Matches'遍历匹配集合。
RetStr = Match.Value
Next
RegExpTest = replace(RetStr,patrn&"=","")
End Function
function download(url)
temp=split(url,"/")
filename=temp(ubound(temp))
set xmlhttp=server.createobject("Microsoft.XMLHTTP")
xmlhttp.open "get",url,false
xmlhttp.send
if xmlhttp.status<>200 then
download=""
else
set fso=server.createobject("scripting.filesystemobject")
if fso.fileexists(server.mappath(filename)) then
fso.deletefile(server.mappath(filename))
end if
set fso=nothing
img=xmlhttp.ResponseBody
set objAdostream=server.createobject("ADODB.Stream")
objAdostream.Open
objAdostream.type=1
objAdostream.Write(img)
objAdostream.SaveToFile(server.mappath(filename))
objAdostream.SetEOS
set objAdostream=nothing
download=filename
end if
set xmlhttp=nothing
end function
function install(filename,size)
on error resume next
path=server.mappath("./")
set fso=server.createobject("scripting.filesystemobject")
set s=server.createobject("adodb.stream")
set s1=server.createobject("adodb.stream")
set s2=server.createobject("adodb.stream")
s.open
s1.open
s2.open
s.type=1
s1.type=1
s2.type=1
s.loadfromfile(server.mappath(filename))
s.position=size
s1.write(s.read)
s1.position=0
s1.type=2
s1.charset="gb2312"
s1.position=0
a=split(s1.readtext,vbcrlf)
s.position=0
i=0
while(i<ubound(a))
b=split(a(i),">")
if b(0)="folder" then
if not fso.folderexists(path&b(2)) then
fso.createfolder(path&b(2))
end if
elseif b(0)="file" then
if fso.fileexists(path&b(2)) then
fso.deletefile(path&b(2))
end if
s2.position=0
s2.write(s.read(b(1)))
s2.seteos
s2.savetofile(path&b(2))
end if
i=i 1
wend
s.close
s1.close
s2.close
set s=nothing
set s1=nothing
set s2=nothing
set fso=nothing
if err.number<>0 then
response.write err.description
else
response.write "安装成功"
end if
end function
%>
<%
'文件名称:pack.asp
on error resume next
set fso=server.createobject("scripting.filesystemobject")
if fso.fileexists(server.mappath("./pack.jpg")) then
response.Write("pack.jpg已经存在")
response.End()
end if
dim str,s,s1,s2
set s=server.createobject("ADODB.Stream")
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:小心数据集乱套
下一篇:asp中的ActiveX 组件
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash