手机
当前位置:查字典教程网 >编程开发 >ASP教程 >用asp实现把文件打包成Xml文件包,带解包的ASP工具附下载
用asp实现把文件打包成Xml文件包,带解包的ASP工具附下载
摘要:把文件打包成Xml文件包,带解包的ASP工具!把网站源码全部打包到Xml文件里面,生成updata.xml文件,把xml文件上传到空间里面然...

把文件打包成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://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>

<%

DimZipPathDir,ZipPathFile,ZipFileExt

Dimstartime,endtime

'在此更改要打包文件夹的路径

ZipPathDir=Left(Request.ServerVariables("PATH_TRANSLATED"),InStrRev(Request.ServerVariables("PATH_TRANSLATED"),""))'

'生成的xml文件

ZipPathFile="update.xml"

'不进行打包的文件扩展名

ZipFileExt="db;bak"

ifright(ZipPathDir,1)<>""thenZipPathDir=ZipPathDir&""

'开始打包

CreateXml(ZipPathFile)

'遍历目录内的所有文件以及文件夹

subLoadData(DirPath)

dimXmlDoc

dimfso'fso对象

dimobjFolder'文件夹对象

dimobjSubFolders'子文件夹集合

dimobjSubFolder'子文件夹对象

dimobjFiles'文件集合

dimobjFile'文件对象

dimobjStream

dimpathname,TextStream,pp,Xfolder,Xfpath,Xfile,Xpath,Xstream

dimPathNameStr

response.Write("=========="&DirPath&"==========<br>")

setfso=server.CreateObject("scripting.filesystemobject")

setobjFolder=fso.GetFolder(DirPath)'创建文件夹对象

Response.WriteDirPath

Response.flush

SetXmlDoc=Server.CreateObject("Microsoft.XMLDOM")

XmlDoc.load(Server.MapPath(ZipPathFile))

XmlDoc.async=false

'写入每个文件夹路径

setXfolder=XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("folder"))

SetXfpath=Xfolder.AppendChild(XmlDoc.CreateElement("path"))

Xfpath.text=replace(DirPath,ZipPathDir,"")

setobjFiles=objFolder.Files

foreachobjFileinobjFiles

iflcase(DirPath&objFile.name)<>lcase(Request.ServerVariables("PATH_TRANSLATED"))andlcase(DirPath&objFile.name)<>lcase(DirPath&ZipPathFile)then

ifext(objFile.name)then

Response.Write"---<br/>"

PathNameStr=DirPath&""&objFile.name

Response.WritePathNameStr&""

Response.flush

'================================================

'写入文件的路径及文件内容

setXfile=XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("file"))

SetXpath=Xfile.AppendChild(XmlDoc.CreateElement("path"))

Xpath.text=replace(PathNameStr,ZipPathDir,"")

'创建文件流读入文件内容,并写入XML文件中

SetobjStream=Server.CreateObject("ADODB.Stream")

objStream.Type=1

objStream.Open()

objStream.LoadFromFile(PathNameStr)

objStream.position=0

SetXstream=Xfile.AppendChild(XmlDoc.CreateElement("stream"))

Xstream.SetAttribute"xmlns:dt","urn:schemas-microsoft-com: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>

打包文件下载

【用asp实现把文件打包成Xml文件包,带解包的ASP工具附下载】相关文章:

asp下实现替换远程文件为本地文件并保存远程文件的代码

用asp实现的数据库中存取文件的代码

ASP删除记录和链接数据库程序解释

asp实现防止站外提交内容的两个方法

用asp实现无组件生成验证码的方法2种

在ASP中利用ADO显示Excel文件内容的函数

关于网站文件自动备份程序的一点思考

用asp实现检测文件编码

asp限制上传文件大小实例

ASP实例学习:随机生成文件名的函数

精品推荐
分类导航