asp下利用xml打包網(wǎng)站文件
來(lái)源:易賢網(wǎng) 閱讀:751 次 日期:2014-08-10 17:11:30
溫馨提示:易賢網(wǎng)小編為您整理了“asp下利用xml打包網(wǎng)站文件”,方便廣大網(wǎng)友查閱!

這個(gè)方法可以把整個(gè)文件夾打包到xml文件中,把這個(gè)xml文件文件和解包文件放在一起后,運(yùn)行解包文件就可以把原來(lái)的文件釋放出來(lái),這樣我們就可以把網(wǎng)站打包上傳到虛擬主機(jī),再運(yùn)行解包文件就可以了。我在本地測(cè)試之選擇了少部分文件,不知在文件很多的情況執(zhí)行效率如何。

其實(shí)實(shí)現(xiàn)的思路也很簡(jiǎn)單,主要利用的是xml文件可以存放二進(jìn)制數(shù)據(jù)的原理。有興趣的朋友可以下載下面的附件研究下!!

解包文件

代碼如下:

<%@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>腳本之家——文件解包程序_www.jb51.net</title>

</head>

<body>

<%

Dim strLocalPath

'得到當(dāng)前文件夾的物理路徑

strLocalPath=Left(Request.ServerVariables("PATH_TRANSLATED"),InStrRev(Request.ServerVariables("PATH_TRANSLATED"),"\"))

Dim objXmlFile

Dim objNodeList

Dim objFSO

Dim objStream

Dim i,j

Set objXmlFile = Server.CreateObject("Microsoft.XMLDOM")

objXmlFile.load(Server.MapPath("update.xml"))

If objXmlFile.readyState=4 Then

If objXmlFile.parseError.errorCode = 0 Then

Set objNodeList = objXmlFile.documentElement.selectNodes("http://folder/path")

Set objFSO = CreateObject("Scripting.FileSystemObject")

j=objNodeList.length-1

For i=0 To j

If objFSO.FolderExists(strLocalPath & objNodeList(i).text)=False Then

objFSO.CreateFolder(strLocalPath & objNodeList(i).text)

End If

Response.Write "創(chuàng)建目錄" & objNodeList(i).text & "<br/>"

Response.Flush

Next

Set objFSO = nothing

Set objNodeList = nothing

Set objNodeList = objXmlFile.documentElement.selectNodes("http://file/path")

j=objNodeList.length-1

For i=0 To j

Set objStream = CreateObject("ADODB.Stream")

With objStream

.Type = 1

.Open

.Write objNodeList(i).nextSibling.nodeTypedvalue

.SaveToFile strLocalPath & objNodeList(i).text,2

Response.Write "釋放文件" & objNodeList(i).text & "<br/>"

Response.Flush

.Close

End With

Set objStream = Nothing

Next

Set objNodeList = nothing

End If

End If

Set objXmlFile = Nothing

response.write "文件解包完畢"

%>

</body>

</html>

pack.asp 打包文件

代碼如下:

<%@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>文件打包程序_腳本之家_www.jb51.net</title>

</head>

<body>

<%

Dim ZipPathDir,ZipPathFile

Dim startime,endtime

'在此更改要打包文件夾的路徑

ZipPathDir = "D:\testasp\dictionary\xmlPacked\scrollColor"'

ZipPathFile = "update.xml"

if right(ZipPathDir,1)<>"\" then ZipPathDir=ZipPathDir&"\"

'開(kāi)始打包

CreateXml(ZipPathFile)

'遍歷目錄內(nèi)的所有文件以及文件夾

sub LoadData(DirPath)

dim XmlDoc

dim fso 'fso對(duì)象

dim objFolder '文件夾對(duì)象

dim objSubFolders '子文件夾集合

dim objSubFolder '子文件夾對(duì)象

dim objFiles '文件集合

dim objFile '文件對(duì)象

dim objStream

dim pathname,TextStream,pp,Xfolder,Xfpath,Xfile,Xpath,Xstream

dim PathNameStr

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

set fso=server.CreateObject("scripting.filesystemobject")

set objFolder=fso.GetFolder(DirPath)'創(chuàng)建文件夾對(duì)象

Response.Write DirPath

Response.flush

Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM")

XmlDoc.load Server.MapPath(ZipPathFile)

XmlDoc.async=false

'寫(xiě)入每個(gè)文件夾路徑

set Xfolder = XmlDoc.SelectSingleNode("http://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

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

'寫(xiě)入文件的路徑及文件內(nèi)容

set Xfile = XmlDoc.SelectSingleNode("http://root").AppendChild(XmlDoc.CreateElement("file"))

Set Xpath = Xfile.AppendChild(XmlDoc.CreateElement("path"))

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

'創(chuàng)建文件流讀入文件內(nèi)容,并寫(xiě)入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"

'文件內(nèi)容采用二制方式存放

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

'創(chuàng)建的子文件夾對(duì)象

set objSubFolders=objFolder.Subfolders

'調(diào)用遞歸遍歷子文件夾

for each objSubFolder in objSubFolders

pathname = DirPath & objSubFolder.name & "\"

LoadData(pathname)

next

set objFolder=nothing

set objSubFolders=nothing

set fso=nothing

end sub

'創(chuàng)建一個(gè)空的XML文件,為寫(xiě)入文件作準(zhǔn)備

sub CreateXml(FilePath)

'程序開(kāi)始執(zhí)行時(shí)間

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)

'程序結(jié)束時(shí)間

endtime=timer()

response.Write("頁(yè)面執(zhí)行時(shí)間:" & FormatNumber((endtime-startime),3) & "秒")

end sub

%>

</body>

</html>

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:asp下利用xml打包網(wǎng)站文件
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)