`
huozheleisi
  • 浏览: 1236291 次
文章分类
社区版块
存档分类
最新评论

ASP升级程序

 
阅读更多
来源:"小小灰 "小灰"的专栏灰"的专栏
地址:http://blog.csdn.net/iuhxq/archive/2004/09/29/120254.aspx

<%
'文件名: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")
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=2

call WriteFile(server.MapPath("./"))

s2.charset="gb2312"
s2.WriteText(str)
s2.Position=0
s2.type=1
s2.Position=0
bin=s2.Read

s2.Position=0
s2.type=2
s2.writeText("time="&now&vbcrlf)
s2.writeText("size="&s1.size&vbcrlf)
s2.writeText("run="&request.Form("run")&vbcrlf)
s2.seteos
s2.savetofile(server.mappath("./config.txt"))

s1.write(bin)
s1.SetEOS
s1.SaveToFile(server.mappath("./pack.jpg"))

s.close
s1.close
s2.close

set s=nothing
set s1=nothing
set s2=nothing

if err.number<>0 then
response.write err.description
else
response.Write("完成")
end if

Function WriteFile(folderspec)
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(folderspec)

Set fc = f.Files
For Each f1 in fc
if f1.name<>"pack.asp" then
str=str&"file>"&f1.size&">"&replace(folderspec&"/"&f1.name,server.MapPath("./"),"")&vbcrlf
s.LoadFromFile(folderspec&"/"&f1.name)
img=s.Read()
s1.Write(img)
end if
Next

Set fc = f.SubFolders
For Each f1 in fc
str=str&"folder>0>"&replace(folderspec&"/"&f1.name,server.MapPath("./"),"")&vbcrlf
WriteFile(folderspec&"/"&f1.name)
Next

set fso=nothing
End Function
%>



ASP升级程序使用说明

本程序分两部分:
1、ASP文件打包程序pack.asp
把这个程序和要打包的程序放到一个目录下,然后运行pack.asp,得到pack.jpg和config.txt
2、ASP在线更新、下载、安装程序updata.asp
这个程序可以用来检查是否存在可用更新,和updata.asp同一目录要存在上面得到的config.txt,因为config里面有当前程序的安装日期,用来和网上的程序比较用的。
使用前,先修改updata.asp里的url变量的值,使其等于你存放升级程序的URL,运行updata.asp就可查看是否存在可用更新,如果存在就可用按着向导一步一步下载并安装更新了。

远程地址url下面存放用pack.asp得到的pack.jpg和config.txt

本程序既可以用来做升级程序,当然如果原来安装目录下是空的,那就是一个完整的安装程序,^_^,也可以把updata.asp放到后台的首页里,这样每次登陆都可以自动检查是否有可用更新

注意:本地或者远程没有config.txt会导致程序不可用,以后会考虑加入这个容错机制。


作者信息:
QQ:103895
主页:http://blog.csdn.net/iuhxq
http://asp2004.net
版权声明:本程序可以任意拷贝使用,但请不要删除此信息。谢谢!

分享到:
评论

相关推荐

    在线升级程序asp版

    ASP升级程序使用说明 &lt;br&gt;本程序分两部分: 1、ASP文件打包程序pack.asp 把这个程序和要打包的程序放到一个目录下,然后运行pack.asp,得到pack.jpg和config.txt 2、ASP在线更新、下载、安装程序...

    动网论坛 asp8.3 整站程序 asp

    动网论坛的整站程序 asp代码写的 动网论坛 asp8.3 整站程序 asp

    asp全能探针程序升级版

    asp全能探针 asp程序开发人员必备利器

    ASP+MSSQL仿拉手网团购程序源码 - ASP+MSSQL团购网站程序源码(附说明文档)

    是一套仿拉手网团购程序,是国内首套采用ASP+MSSQL开发的团购程序,安装超简,功能超全面,在保留手拉手团购系统版权的前提下,允许所有用户永久免费使用、永久免费升级。手拉手团购系统内置多种主流在线支付接口,...

    动网论坛 v7.0.0 To v7.1.0 升级程序

    如update,然后将本压缩包中所有文件以及老论坛数据库上传至该目录3、使用浏览器运行http://网址/升级目录/update.asp4、详细阅读升级程序中的注意事项后开始升级5、升级完成后将升级包中的“CleanCache.asp”文件...

    《ASP.NET程序设计实用教程》配套资料-cd, ppt

    内容提要 &lt;br&gt; 本书系统地介绍了ASP.NET程序设计开发,全书案例程序使用C#编写,并遵守C#的编码规范。所有案例程序均来自课堂教学和工程实践,注重知识的兼容性和规范性。  依照ASP.NET编程体系,本书...

    动网论坛V7.0/7.1 To V7.1.0 Sp1升级程序

    3、使用浏览器运行http://网址/升级目录/update.asp 4、详细阅读升级程序中的注意事项后开始升级 5、升级完成后将升级包中的“CleanCache.asp”文件上传到论坛目录并运行,清理缓存 6、修改新版中Conn.asp文件中的...

    动网论坛V7.0 To V7.1升级程序 7.1.0

    3、使用浏览器运行http://网址/升级目录/update.asp 4、详细阅读升级程序中的注意事项后开始升级 5、升级完成后将升级包中的“CleanCache.asp”文件上传到论坛目录并运行,清理缓存 6、修改新版中Conn.asp文件中的...

    DoSeenBrowser - asp/asp.net/web服务器伪客户端应用程序(升级)

    &lt;2&gt;asp服务器:支持asp脚本编写的应用程序,支持浏览器或伪应用打开。 &lt;3&gt;asp.net服务器:支持asp.net3.5以下编写的应用程序,支持浏览器或伪应用打开。 采用c# .net3.5开发,详尽使用方法请见程序。

    USBASP+固件升级指南_buried6v4_arduinousbasp_AVR单片机_烧录_avr_

    但这就带来了一个问题——BootLoader的烧录(也就是引导程序的烧录)arduino的BootLoader不能使用串口烧录这是常识(我个人认为),唯一的办法就是编程器(也叫烧录器或下载器)可以将一块arduino板子制作成...

    ASP程序聊天室V2.5注册版

    这个聊天室是由大虾将军用asp编写的一个聊天程序,具有完整的聊天功 能和很漂亮的外壳。支持市面上所有聊天室的功能,并且功能在陆续添加中. 聊天室支持私聊、每个用户都有代表自己的脸谱(可随时修改),可在列 表...

    动网论坛7.0/7.1/7.1Sp1 To 7.1 Sp1最新升级程序

    3、使用浏览器运行http://网址/升级目录/update.asp 4、详细阅读升级程序中的注意事项后开始升级 5、升级完成后将升级包中的“CleanCache.asp”文件上传到论坛目录并运行,清理缓存 6、修改新版中Conn.asp文件中的...

    动易4.02与动网论坛整合的升级程序

    1、升级动网论坛的数据库 详细操作步骤请看“动网论坛数据库升级程序”目录中的“操作步骤.txt”文件。升级程序同时支持DvBBS6.0 ACCESS、DvBBS6.0 SQL、DvBBS7.0 ACCESS、DvBBS7.0 SQL四个版本的数据库升级。...

    ASP 程序实现自动升级功能

    ASP 程序实现自动升级功能

    苹果电影程序MacCms ASP UTF8 v7.7 build20130722.zip

    苹果电影程序ASP 7.7 20130722 更新日志: 1,更新xss防护脚本。 2,更新优酷播放器。 3,更新播放器代码,应对谷歌ADBLOCK的屏蔽问题。 4,修复专题首页的错误。 5,修复播放页面if标签的问题。 6,其他细节...

    最新Http升级程序

    http://www.china-ehr.com/down/download.php?auth=CmEDYwFxVWgAZQlnVDcGZld8UzIGaQdrBzFUI1cnVWULOVQ%2FC2MAJAhqXntfdF17DG0CagFmXDgEMVswA20BOAoqA0kBZVVqAGUJc1R5BjVX7lOHBsgH7AeXVJNX4FW0C7pU8AvBAPsIKl4kX2VdbQwnAnYBc1w9BCVbLQN1ATQKaANpATtVNwA%2BCTNUPQZgV2lTZgYwBzIHY1RwVzxVeQs5VGkLPgBiCCpeZl8zXToMLwI0ATFcbwR5W2gDMAFqCiMDYQFvVXQAfglsVHgGbQ%3D%3D&lt;br&gt;http://soft.52z.com/Down2.Asp...、增加了从URL自动获取文件名的功能。

    网站木马扫描ASP程序

     本程序可以扫描服务器上的所有指定类型(asp,cer,asa,cdx)的文件,查出可疑的木马程序。系统采用扫描程序与病毒库分离的形式, 以后升级只需像杀毒软件那样升级病毒库就可以了。目前可以查杀所有流行的ASP木马程序...

    ASP简易新闻发布系统程序 简洁无错版 V1.0.rar

    ASP简易新闻发布系统将不断升级,完善程序功能,并不断修复程序漏洞,力争打造人气最高的多用户博客程序。程序解压密码为(www.wangzhuan333.cn)。 网站管理地址:http://你的网址/login.asp 用户名:admin 密 ...

    动网论坛v3.0 final/sr2 to v5.0升级程序

    删除update.asp文件 ================================================ 动网论坛V3.0 final/SR2 to V4.0 1120/1121升级程序(修正版) ================================================ ...

    ASP远程更新程序 - 带客户端服务端

    一款ASP自动远程升级更新程序,带客户端和服务端!

Global site tag (gtag.js) - Google Analytics