其实实现的思路也很简单,主要就是利用的是xml文件可以存放二进制数据的原理。
两个主要文件如下:
- <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
- <% Option Explicit %>
- <% On Error Resume Next %>
- <% Response.Charset="UTF-8" %>
- <% Server.ScriptTimeout=99999999 %>
- <!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">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>文件打包程序-志文工作室</title>
- </head>
- <body>
- <%
- Dim ZipPathDir,ZipPathFile
- Dim startime,endtime
- '方式一:打包指定路径文件夹内文件。在此更改要打包文件夹的路径
- 'ZipPathDir = "D:\Personal\Desktop\TEM_EDIT"
- '方式二:打包当前文件夹内文件。
- '获取当前所在文件夹
- ZipPathDir=Left(Request.ServerVariables("PATH_TRANSLATED"),InStrRev(Request.ServerVariables("PATH_TRANSLATED"),"\"))
- ZipPathFile = "update.xml"
- if right(ZipPathDir,1)<>"\" then ZipPathDir=ZipPathDir&"\"
- '开始打包
- CreateXml(ZipPathFile)
- '遍历目录内的所有文件以及文件夹
- sub LoadData(DirPath)
- dim XmlDoc
- dim fso 'fso对象
- dim objFolder '文件夹对象
- dim objSubFolders '子文件夹集合
- dim objSubFolder '子文件夹对象
- dim objFiles '文件集合
- dim objFile '文件对象
- dim objStream
- dim pathname,TextStream,pp,Xfolder,Xfpath,Xfile,Xpath,Xstream
- dim PathNameStr
- response.Write("<b>打包子文件夹【 "&DirPath&" 】下的文件:</b><br>")
- set fso=server.CreateObject("scripting.filesystemobject")
- set objFolder=fso.GetFolder(DirPath)'创建文件夹对象
- Response.Write DirPath
- Response.flush
- Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM")
- XmlDoc.load Server.MapPath(ZipPathFile)
- XmlDoc.async=false
- '写入每个文件夹路径
- set Xfolder = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("folder"))
- Set Xfpath = Xfolder.AppendChild(XmlDoc.CreateElement("path"))
- Xfpath.text = replace(DirPath,ZipPathDir,"")
- set objFiles=objFolder.Files
- for each objFile in objFiles
- if lcase(DirPath & objFile.name) <> lcase(Request.ServerVariables("PATH_TRANSLATED")) then
- Response.Write " ...<br/>"
- PathNameStr = DirPath & "" & objFile.name
- Response.Write PathNameStr & ""
- Response.flush
- '================================================
- '写入文件的路径及文件内容
- set Xfile = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("file"))
- Set Xpath = Xfile.AppendChild(XmlDoc.CreateElement("path"))
- Xpath.text = replace(PathNameStr,ZipPathDir,"")
- '创建文件流读入文件内容,并写入XML文件中
- Set objStream = Server.CreateObject("ADODB.Stream")
- objStream.Type = 1
- objStream.Open()
- objStream.LoadFromFile(PathNameStr)
- objStream.position = 0
- Set Xstream = Xfile.AppendChild(XmlDoc.CreateElement("stream"))
- Xstream.SetAttribute "xmlns:dt","urn:schemas-microsoft-com:datatypes"
- '文件内容采用二制方式存放
- Xstream.dataType = "bin.base64"
- Xstream.nodeTypedValue = objStream.Read()
- set objStream=nothing
- set Xpath = nothing
- set Xstream = nothing
- set Xfile = nothing
- '================================================
- end if
- next
- Response.Write "<p>"
- XmlDoc.Save(Server.Mappath(ZipPathFile))
- set Xfpath = nothing
- set Xfolder = nothing
- set XmlDoc = nothing
- '创建的子文件夹对象
- set objSubFolders=objFolder.Subfolders
- '调用递归遍历子文件夹
- for each objSubFolder in objSubFolders
- pathname = DirPath & objSubFolder.name & "\"
- LoadData(pathname)
- next
- set objFolder=nothing
- set objSubFolders=nothing
- set fso=nothing
- end sub
- '创建一个空的XML文件,为写入文件作准备
- sub CreateXml(FilePath)
- '程序开始执行时间
- startime=timer()
- dim XmlDoc,Root
- Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM")
- XmlDoc.async = False
- Set Root = XmlDoc.createProcessingInstruction("xml","version='1.0' encoding='UTF-8'")
- XmlDoc.appendChild(Root)
- XmlDoc.appendChild(XmlDoc.CreateElement("root"))
- XmlDoc.Save(Server.MapPath(FilePath))
- Set Root = Nothing
- Set XmlDoc = Nothing
- LoadData(ZipPathDir)
- '程序结束时间
- endtime=timer()
- response.write "<br />所有文件解包完毕!<br /><br />"
- response.Write("页面执行时间:" & FormatNumber((endtime-startime),3) & "秒")
- end sub
- %>
- </body>
- </html>
链接不限,但前提是先加入本站的链接!否则不加!
可以和贵站交换友情链接吗?
哇,宝宝猪也有生气的时候?哈哈!
漏洞一大堆,看了都不想注入你.太给力了
很黄很暴力!~不过在理!
男的也不错啊
一般般啦!我不是太喜欢!
我沙发!哈哈
我喜欢女的唱的那段!
哈哈,我们学校当时组织一群小女孩跳这个,我们这群小色狼就在旁边