ASP利用XML打包指定文件夾 并上傳到WEB目錄中,自行解包_ASP教程

      編輯Tag賺U幣
      教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

      推薦:ASP Error對(duì)象的技巧
      在VBScript中,有一個(gè)On Error Resume Next語(yǔ)句,它使腳本解釋器忽略運(yùn)行期錯(cuò)誤并繼續(xù)腳本代碼的執(zhí)行。接著該腳本可以檢查Err.Number屬性的值,判別是否出現(xiàn)了錯(cuò)誤。如果出現(xiàn)錯(cuò)誤,返回一個(gè)非零值。在ASP 3.0中,也可以使用On Error Goto 0“轉(zhuǎn)回到”缺省的

      1. '======================== 
      2. '文件1 
      3. 'Pack.asp 
      4. '更改 Cpathname 這一變量 
      5. '將在當(dāng)前目錄生成一個(gè)DATA.XML文件 
      6. '將DATA.XML及文件2(install.asp)上傳至WEB根目錄 
      7. '運(yùn)行install.asp解包 
      8. '手動(dòng)刪除以上兩個(gè)文件  
      9. '======================== 
      10. <% Option Explicit %> 
      11. <% On Error Resume Next %> 
      12. <
      13. Server.ScriptTimeout=99999999 
      14. dim Cpathname 
      15. dim startime,endtime 
      16.  
      17. '在此更改要打包文件夾的路徑 
      18. Cpathname = "F:WEBsymr" 
      19.  
      20. startime=timer() 
      21. function bianli(path) 
      22. dim doc 
      23. dim fso 'fso對(duì)象 
      24. dim objFolder '文件夾對(duì)象 
      25. dim objSubFolders '子文件夾集合 
      26. dim objSubFolder '子文件夾對(duì)象 
      27. dim objFiles '文件集合 
      28. dim objFile '文件對(duì)象 
      29. dim objStream 
      30. dim pathname,TextStream,pp,Xfolder,Xfpath,Xfile,Xpath,Xstream 
      31.  
      32. set fso=server.CreateObject("scripting.filesystemobject") 
      33. set objFolder=fso.GetFolder(path)'創(chuàng)建文件夾對(duì)象 
      34.  
      35. Response.Write path 
      36. Response.flush 
      37.  
      38. Set doc = Server.CreateObject("MSxml2.DOMDocument") 
      39. doc.load Server.MapPath("data.xml") 
      40. doc.async=false 
      41.  
      42. '寫入每個(gè)文件夾路徑 
      43. set Xfolder = doc.SelectSingleNode("//z-blog").AppendChild(doc.CreateElement("folder")) 
      44. Set Xfpath = Xfolder.AppendChild(doc.CreateElement("path")) 
      45. Xfpath.text = replace(path,Cpathname,"") 
      46.  
      47. set objFiles=objFolder.Files 
      48. for each objFile in objFiles 
      49. Response.Write " 
      50. ---" 
      51. pp = path & "" & objFile.name 
      52.  
      53. Response.Write pp & " 
      54. Response.flush 
      55.  
      56. '================================================ 
      57. '寫入文件的路徑及文件內(nèi)容 
      58. set Xfile = doc.SelectSingleNode("//z-blog").AppendChild(doc.CreateElement("file")) 
      59.  
      60. Set Xpath = Xfile.AppendChild(doc.CreateElement("path")) 
      61. Xpath.text = replace(pp,Cpathname,"") 
      62.  
      63. '創(chuàng)建文件流讀入文件內(nèi)容,并寫入XML文件中 
      64. Set objStream = Server.CreateObject("ADODB.Stream") 
      65. objStream.Type = 1 
      66. objStream.Open() 
      67. objStream.LoadFromFile(pp) 
      68. objStream.position = 0 
      69.  
      70. Set Xstream = Xfile.AppendChild(doc.CreateElement("stream")) 
      71. Xstream.SetAttribute "xmlns:dt","urn:schemas-microsoft-com:datatypes" 
      72. '文件內(nèi)容采用二制方式存放 
      73. Xstream.dataType = "bin.base64" 
      74. Xstream.nodeTypedValue = objStream.Read() 
      75.  
      76. set objStream=nothing 
      77. set Xpath = nothing 
      78. set Xstream = nothing 
      79. set Xfile = nothing 
      80.  
      81. '================================================ 
      82. next 
      83. Response.Write "<p>
      84.  
      85. doc.save server.mappath("data.xml") 
      86. set Xfpath = nothing 
      87. set Xfolder = nothing 
      88. set doc = nothing 
      89.  
      90. '創(chuàng)建的子文件夾對(duì)象 
      91. set objSubFolders=objFolder.Subfolders 
      92. '調(diào)用遞歸遍歷子文件夾 
      93. for each objSubFolder in objSubFolders 
      94. pathpathname=path + "" + objSubFolder.name 
      95. bianli(pathname) 
      96. next  
      97.  
      98. set objFolder=nothing 
      99. set objSubFolders=nothing 
      100. set fso=nothing 
      101. end function 
      102.  
      103. dim doc,objPI 
      104. '創(chuàng)建一個(gè)空的XML文件,為寫入文件作準(zhǔn)備 
      105. Set doc = Server.CreateObject("MSxml2.DOMDocument") 
      106. doc.async=false 
      107. set objPI = doc.createProcessingInstruction("xml","version='1.0' encoding='UTF-8'") 
      108. doc.insertBefore objPI, doc.childNodes(0) 
      109. doc.appendChild(doc.CreateElement("z-blog")) 
      110. doc.save server.mappath("data.xml") 
      111. set objPI = nothing 
      112. set doc = nothing 
      113. bianli(Cpathname)  
      114. endtime=timer() 
      115. %>  
      116. 頁(yè)面執(zhí)行時(shí)間:<%=FormatNumber((endtime-startime),3)%>秒 
      117.  
      118. '================================= 
      119. '文件2 
      120. 'install.asp 
      121. '此文件改自z-blog安裝文件 
      122. '================================= 
      123. <%@ CODEPAGE=65001 %> 
      124. <% Option Explicit %> 
      125. <% On Error Resume Next %> 
      126. <Response.Charset="UTF-8" %> 
      127. <html> 
      128. <head> 
      129. <title>文件解包程序</title> 
      130. </head> 
      131. <body> 
      132. <textarea name="content" cols="90" rows="20" style="border:0px;overflow:auto;border-width:0px;width:100%;background-color:#E8F3FF;" scrolling="auto"> 
      133. <
      134. Dim strLocalPath 
      135. '得到當(dāng)前文件夾的物理路徑 
      136. strLocalPath=Left(Request.ServerVariables("PATH_TRANSLATED"),InStrRev(Request.ServerVariables("PATH_TRANSLATED"),"")) 
      137.  
      138. Dim strDbPath 
      139. Dim objXmlFile 
      140. Dim objNodeList 
      141. Dim objFSO 
      142. Dim objStream 
      143. Dim i,j 
      144.  
      145. Set objXmlFile = Server.CreateObject("Microsoft.XMLDOM") 
      146. objXmlFile.load(Server.MapPath("data.xml")) 
      147.  
      148. If objXmlFile.readyState=4 Then 
      149. If objXmlFile.parseError.errorCode = 0 Then 
      150.  
      151. Set objNodeList = objXmlFile.documentElement.selectNodes("//folder/path") 
      152. Set objFSO = CreateObject("Scripting.FileSystemObject") 
      153.  
      154. j=objNodeList.length-1 
      155. For i=0 To j 
      156. If objFSO.FolderExists(strLocalPath & objNodeList(i).text)=False Then 
      157. objFSO.CreateFolder(strLocalPath & objNodeList(i).text) 
      158. End If 
      159. Response.Write "創(chuàng)建目錄" & objNodeList(i).text & vbCrlf 
      160. Response.Flush 
      161. Next 
      162.  
      163. Set objNodeList = objXmlFile.documentElement.selectNodes("//file/path") 
      164.  
      165. j=objNodeList.length-1 
      166. For i=0 To j 
      167. Set objStream = CreateObject("ADODB.Stream") 
      168. With objStream 
      169. .Type = 1 
      170. .Open 
      171. .Write objNodeList(i).nextSibling.nodeTypedvalue 
      172. .SaveToFile strLocalPath & objNodeList(i).text,2 
      173. Response.Write "釋放文件" & objNodeList(i).text & vbCrlf 
      174. Response.Flush 
      175. .Close 
      176. End With 
      177. Set objStream = Nothing 
      178. Next 
      179. End If 
      180. End If 
      181. %> 
      182. </textarea> 
      183. <%response.write "<script>alert('文件解包完畢!');</script>"%> 

      分享:ASP開發(fā)中有用的函數(shù)(function)集合(1)
      ASP開發(fā)中有用的function集合,挺有用處的!希望大家保留! % '************************************* '防止外部提交 '************************************* function ChkPost() dim server_v1,server_v2 chkpost=false server_v1=Cstr(Request.ServerVari

      來(lái)源:模板無(wú)憂//所屬分類:ASP教程/更新時(shí)間:2012-06-13
      相關(guān)ASP教程