用asp实现把文件打包成Xml文件包,带解包的ASP工具附下载

时间:2021-05-18

把文件打包成Xml文件包,带解包的ASP工具!

把网站源码全部打包到Xml文件里面,生成updata.xml文件,把xml文件上传到空间里面
然后通过install.asp文件将文件全部释放出来。
就和z-blog的自动安装包一样的功能呵呵。
代码是落伍的一位兄弟写的,不过代码好像有错误,这个是我参考他的修改过了,可以正常运行!~~
此代码可以应用到asp程序的自动升级服务上面。具体怎么来实现,欢迎探讨!~~
就在下面回帖探讨!~~~
不用设定打包目录版,需要设定打包目录版这两个版本的区别:
不用设定打包目录版,直接放到你需要打包的目录执行就可以了。
需要设定打包目录版,必须指定需要打包的路径(在程序里修改),不指定,不能进行打包。
不用设定目录-打包文件
复制代码 代码如下:
<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%>
<%OptionExplicit%>
<%OnErrorResumeNext%>
<%Response.Charset="UTF-8"%>
<%Server.ScriptTimeout=99999999%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://:datatypes"
'文件内容采用二制方式存放
Xstream.dataType="bin.base64"
Xstream.nodeTypedValue=objStream.Read()

setobjStream=nothing
setXpath=nothing
setXstream=nothing
setXfile=nothing
'================================================
endif
endif
next
Response.Write"<p>"
XmlDoc.Save(Server.Mappath(ZipPathFile))
setXfpath=nothing
setXfolder=nothing
setXmlDoc=nothing

'创建的子文件夹对象
setobjSubFolders=objFolder.Subfolders
'调用递归遍历子文件夹
foreachobjSubFolderinobjSubFolders
pathname=DirPath&objSubFolder.name&"\"
LoadData(pathname)
next
setobjFolder=nothing
setobjSubFolders=nothing
setfso=nothing

endsub



'创建一个空的XML文件,为写入文件作准备
subCreateXml(FilePath)
'程序开始执行时间
startime=timer()
dimXmlDoc,Root
SetXmlDoc=Server.CreateObject("Microsoft.XMLDOM")
XmlDoc.async=False
SetRoot=XmlDoc.createProcessingInstruction("xml","version='1.0'encoding='UTF-8'")
XmlDoc.appendChild(Root)
XmlDoc.appendChild(XmlDoc.CreateElement("root"))
XmlDoc.Save(Server.MapPath(FilePath))
SetRoot=Nothing
SetXmlDoc=Nothing
LoadData(ZipPathDir)
'程序结束时间
endtime=timer()
response.Write("页面执行时间:"&FormatNumber((endtime-startime),3)&"秒")
endsub

'判断文件类型是否合法
functionext(filename)
ext=true
dimtemp_ext,e
temp_ext=Split(ZipFileExt,";")
fore=0toubound(temp_ext)
ifmid(filename,InstrRev(filename,".")+1)=temp_ext(e)thenext=false
next
endfunction
%>
</body>
</html>

解压asp文件
复制代码 代码如下:
<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%>
<%OptionExplicit%>
<%OnErrorResumeNext%>
<%Response.Charset="UTF-8"%>
<%Server.ScriptTimeout=99999999%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>文件解包程序</title>
</head>

<body>
<%
DimstrLocalPath
'得到当前文件夹的物理路径
strLocalPath=Left(Request.ServerVariables("PATH_TRANSLATED"),InStrRev(Request.ServerVariables("PATH_TRANSLATED"),"\"))

DimobjXmlFile
DimobjNodeList
DimobjFSO
DimobjStream
Dimi,j

SetobjXmlFile=Server.CreateObject("Microsoft.XMLDOM")
objXmlFile.load(Server.MapPath("update.xml"))

IfobjXmlFile.readyState=4Then
IfobjXmlFile.parseError.errorCode=0Then

SetobjNodeList=objXmlFile.documentElement.selectNodes("//folder/path")
SetobjFSO=CreateObject("Scripting.FileSystemObject")

j=objNodeList.length-1
Fori=0Toj
IfobjFSO.FolderExists(strLocalPath&objNodeList(i).text)=FalseThen
objFSO.CreateFolder(strLocalPath&objNodeList(i).text)
EndIf
Response.Write"创建目录"&objNodeList(i).text&"<br/>"
Response.Flush
Next
SetobjFSO=nothing
SetobjNodeList=nothing
SetobjNodeList=objXmlFile.documentElement.selectNodes("//file/path")

j=objNodeList.length-1
Fori=0Toj
SetobjStream=CreateObject("ADODB.Stream")
WithobjStream
.Type=1
.Open
.WriteobjNodeList(i).nextSibling.nodeTypedvalue
.SaveToFilestrLocalPath&objNodeList(i).text,2
Response.Write"释放文件"&objNodeList(i).text&"<br/>"
Response.Flush
.Close
EndWith
SetobjStream=Nothing
Next
SetobjNodeList=nothing
EndIf
EndIf

SetobjXmlFile=Nothing

response.write"文件解包完毕"
%>
</body>
</html>

打包文件下载

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章