⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 install.asp

📁 ASP文件打包安装程序,使你的WEB程序发布更具商业化。
💻 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 + -