📄 install.asp
字号:
<%@ CODEPAGE=65001 %>
<%
'*****************************************************************************'
' 程序作者: 宋东宁(zlsdn) '
' 版权所有: 零点设计 '
' 技术支持: zlsdn@163.com '
' 程序名称: install make '
' 程序版本: Ver 1.0 '
' 单元名称: install.asp '
' 开始时间: 2007.07.07 '
' 最后修改: '
' 程序备注: 用于生成文件 便于上传 '
'*****************************************************************************'
%>
<% Option Explicit %>
<% On Error Resume Next %>
<% Response.Charset="UTF-8" %>
<% Response.Buffer=False %>
<%
Dim strBoundary
strBoundary = "zlsdn"
Response.ContentType = "multipart/x-mixed-replace;boundary=" & strBoundary
server.scriptTimeOut=999
class ZlsdnSetup
Private xDom
Private tStream
Private fileList
Private baseM
Private upl
Public fileTotal
Public xmlPath
Private Sub Class_Initialize()
On Error Resume Next
fileTotal=0
set baseM=new base64
set tStream = Server.CreateObject("adodb.stream")
If Err<>0 Then
Err.clear
response.write Err.Description
response.end
end if
tStream.Type = 1
tStream.Mode = 3
end sub
Private Sub Class_Terminate()
DeleteFiles(Server.MapPath(xmlPath))
DeleteFiles(Server.MapPath("per.png"))
DeleteFiles(Server.MapPath("bg.png"))
DeleteFiles(Server.MapPath("logo.gif"))
DeleteFiles(Server.MapPath("update.asp"))
if IsObject(xDom) then set xDom=nothing
if IsObject(tStream) then set tStream=nothing
if IsObject(baseM) then set baseM=nothing
if IsObject(upl) then Set upl=nothing
end sub
Private Sub createFolder(fileName) '根据带路径的文件名生成多级目录
set upl=Server.CreateObject("Scripting.FileSystemObject")
dim tmpF,tmpFC,tmpD,i,upl
tmpFC=""
tmpD=""
tmpF=split(fileName,"\")
for i=0 to ubound(tmpF)-1
tmpFC=tmpFC & tmpD & tmpF(i)
if upl.FolderExists(Server.MapPath(tmpFC))=False Then
upl.CreateFolder Server.MapPath(tmpFC)
end if
tmpD="\"
next
end sub
Private Function DeleteFiles(fileName)
set upl=Server.CreateObject("Scripting.FileSystemObject")
IF upl.FileExists(fileName) Then
upl.DeleteFile fileName,True
DeleteFiles = True
Else
DeleteFiles = false
End IF
End Function
Public Sub open()
dim i
Set xDom = Server.CreateObject(getXMLDOM)
xDom.load(Server.MapPath(xmlPath))
fileTotal=xDom.getElementsByTagName("files/f").length
end sub
Public Sub install
On Error Resume Next
dim tempStr,i
for i=0 to fileTotal-1
tStream.Open
tStream.Position = 0
tStream.write baseM.decode(xDom.getElementsByTagName("files/f/fb").item(i).text)
tempStr=xDom.getElementsByTagName("files/f/fn").item(i).text
response.write "<div>"&tempStr&"</div>"
tStream.SaveToFile Server.MapPath(tempStr),2
If Err<>0 Then
if Err=3004 then
createFolder(tempStr)
tStream.SaveToFile Server.MapPath(tempStr),2
else
response.write Err.Description
end if
Err.Clear
End If
tStream.close
next
end sub
end class
'=====================base64 encode/decode==============
class base64
Private objXmlDom
Private objXmlNode
Private Sub Class_Initialize()
Set objXmlDom = Server.CreateObject(getXMLDOM)
end sub
Private Sub Class_Terminate()
Set objXmlDom =nothing
end sub
public function encode(AnsiCode)
encode=""
Set objXmlNode = objXmlDom.createElement("file")
objXmlNode.datatype = "bin.base64"
objXmlNode.nodeTypedvalue = AnsiCode
encode = objXmlNode.text
Set objXmlNode =nothing
end function
public function decode(base64Code)
decode=""
Set objXmlNode = objXmlDom.createElement("file")
objXmlNode.datatype = "bin.base64"
objXmlNode.text = base64Code
decode = objXmlNode.nodeTypedvalue
Set objXmlNode =nothing
end function
end class
Function getXMLDOM
On Error Resume Next
Dim Temp
getXMLDOM="Microsoft.XMLDOM"
Err = 0
Dim TmpObj
Set TmpObj = Server.CreateObject(getXMLDOM)
Temp = Err
IF Temp = 1 OR Temp = -2147221005 Then
getXMLDOM="Msxml2.DOMDocument.5.0"
End IF
Err.Clear
Set TmpObj = Nothing
Err = 0
end function
dim insP
set insP=new ZlsdnSetup
insP.xmlPath="install.dat"
insP.open
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="UTF-8">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="UTF-8" />
<title>PJBlog2 v2.6 Install</title>
<style>
body{font-size:12px;font-family:verdana;text-align:center;background:#e9f1f8;}
.tBody{margin:auto;width:604px;padding:4px;border:2px solid #45749e;background:#c8dbec url(bg.png);}
.ins{height:200px;border:1px solid #000;padding:3px;margin:3px;overflow:auto;background:#fff}
.ins div{margin:0px;padding:2px;font-size:12px;text-align:left}
.info{padding:4px;padding-left:0px;margin:3px;text-align:left;background:url(logo.gif) no-repeat right}
.more{height:20px;padding:4px;padding-left:0px;margin:3px;text-align:left;}
.per{height:20px;border:1px solid #000;padding:1px;margin:3px;text-align:left;background:#fff}
.copyRight{border:1px solid #000;padding:4px;padding-left:0px;margin:3px;text-align:left}
h4{margin:0px;margin-bottom:6px;font-size:18px}
#per{height:20px;overflow:hidden;background:#0080ff url(per.png);text-align:left;}
#per span{color:#fff;font-weight:bold;margin:3px;display:block}
#ListF{height:24px;overflow:hidden}
.alert{color:#f00}
</style>
<script>
var sTimer
var fileL=<%=insP.fileTotal%>
var AddCopyRight=false
function scrollDiv(){
try{
var fL=document.getElementById("fileList")
var perx=document.getElementById("per")
var fn=document.getElementById("FileN")
if (!document.all) {
showDetail();
document.getElementById("perDiv").style.display="none"
document.getElementById("ListF").innerHTML="<span class=\"alert\">您所使用的浏览器不是IE,无法显示更加详细的安装进度.</span>"
}
fL.scrollTop=parseInt(fL.scrollHeight)
var p=fL.childNodes.length/fileL;
if (p>1) p=1;
var ps=parseInt((p)*100) +"%"
perx.innerHTML="<span>"+ps+"</span>"
if (fL.childNodes.length<fileL)
fn.innerHTML=fL.childNodes(fL.childNodes.length-1).innerHTML;
else
Finish();
perx.style.width=ps;
}catch(e){}
}
function Finish(){
if (!document.all) {
document.getElementById("ListF").innerHTML="Complete."
}
else
{
document.getElementById("FileN").innerHTML="Complete."
}
}
function showDetail(){
document.getElementById("DetailDiv").style.display="none"
document.getElementById("fileList").style.display="block"
}
sTimer=window.setInterval("scrollDiv()",1)
</script>
</head>
<body onload="scrollDiv()">
<br/>
<div id="tBody" class="tBody">
<div class="info">
<h4>PJBlog2 v2.6 Install</h4>
<b>文件总数:</b> <%=insP.fileTotal%> 个
<div id="ListF"><b>展开文件:</b> <span id="FileN"></span></div>
</div>
<div id="perDiv" class="per"><div id="per" style="width:0%;"></div></div>
<div id="DetailDiv" class="more"><input type="button" value="详细内容" onclick="showDetail()"/></div>
<div id="fileList" class="ins" style="display:none">
<%insP.install%>
<script>
window.clearInterval(sTimer)
window.setTimeout("Finish",100)
</script>
<div>2.6安装完成... 自动删除更新文件. </div>
</div>
<div align="right"><input type="button" value="完成" onclick="location='default.asp'"/></div>
<script>document.getElementById("DetailDiv").style.display="none"</script>
</div>
</body>
</html>
<%
set insP=nothing
%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -