热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在asp下通过xml打包网站文件的方法

今天在网上找了下用xml打包文件、文件夹之类的内容看了看,在本机上调试了下,感觉还挺有用处
今天在网上找了下用xml打包文件、文件夹之类的内容看了看,在本机上调试了下,感觉还挺有用处

这个方法可以把整个文件夹打包到xml文件中,把这个xml文件文件和解包文件放在一起后,运行解包文件就可以把原来的文件释放出来,这样我们就可以把网站打包上传到虚拟主机,再运行解包文件就可以了。我在本地测试之选择了少部分文件,不知在文件很多的情况执行效率如何。
其实实现的思路也很简单,主要利用的是xml文件可以存放二进制数据的原理。有兴趣的朋友可以下载下面的附件研究下!!
解包文件

代码如下:

<%@LANGUAGE="Vbscript" CODEPAGE="65001"%> 
<% Option Explicit %> 
<% On Error Resume Next %> 
<% Response.Charset="UTF-8" %> 
<% Server.ScriptTimeout=99999999 %>
 
 
 
 
 
 
<% 
Dim strLocalPath 
&#39;得到当前文件夹的物理路径 
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("//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 "创建目录" & objNodeList(i).text & "
" Response.Flush Next Set objFSO = nothing Set objNodeList = nothing Set objNodeList = objXmlFile.documentElement.selectNodes("//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 & "
" Response.Flush .Close End With Set objStream = Nothing Next Set objNodeList = nothing End If End If Set objXmlFile = Nothing response.write "文件解包完毕" %>

pack.asp 打包文件

代码如下:

<%@LANGUAGE="Vbscript" CODEPAGE="65001"%> 
<% Option Explicit %> 
<% On Error Resume Next %> 
<% Response.Charset="UTF-8" %> 
<% Server.ScriptTimeout=99999999 %>
 
 
 
 
 
 
 
<% 
Dim ZipPathDir,ZipPathFile 
Dim startime,endtime 
&#39;在此更改要打包文件夹的路径 
ZipPathDir = "D:\testasp\dictionary\xmlPacked\scrollColor"&#39; 
ZipPathFile = "update.xml" 
if right(ZipPathDir,1)<>"\" then ZipPathDir=ZipPathDir&"\" 
&#39;开始打包 
CreateXml(ZipPathFile) 
&#39;遍历目录内的所有文件以及文件夹 
sub LoadData(DirPath) 
    dim XmlDoc 
    dim fso            &#39;fso对象 
    dim objFolder      &#39;文件夹对象 
    dim objSubFolders  &#39;子文件夹集合 
    dim objSubFolder   &#39;子文件夹对象 
    dim objFiles       &#39;文件集合 
    dim objFile        &#39;文件对象 
    dim objStream 
    dim pathname,TextStream,pp,Xfolder,Xfpath,Xfile,Xpath,Xstream 
    dim PathNameStr 
    response.Write("=========="&DirPath&"==========
") set fso=server.CreateObject("scripting.filesystemobject") set objFolder=fso.GetFolder(DirPath)&#39;创建文件夹对象 Response.Write DirPath Response.flush Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM") XmlDoc.load Server.MapPath(ZipPathFile) XmlDoc.async=false &#39;写入每个文件夹路径 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 "---
" PathNameStr = DirPath & "" & objFile.name Response.Write PathNameStr & "" Response.flush &#39;================================================ &#39;写入文件的路径及文件内容 set Xfile = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("file")) Set Xpath = Xfile.AppendChild(XmlDoc.CreateElement("path")) Xpath.text = replace(PathNameStr,ZipPathDir,"") &#39;创建文件流读入文件内容,并写入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" &#39;文件内容采用二制方式存放 Xstream.dataType = "bin.base64" Xstream.nodeTypedValue = objStream.Read() set objStream=nothing set Xpath = nothing set Xstream = nothing set Xfile = nothing &#39;================================================ end if next Response.Write "

" XmlDoc.Save(Server.Mappath(ZipPathFile)) set Xfpath = nothing set Xfolder = nothing set XmlDoc = nothing &#39;创建的子文件夹对象 set objSubFolders=objFolder.Subfolders &#39;调用递归遍历子文件夹 for each objSubFolder in objSubFolders pathname = DirPath & objSubFolder.name & "\" LoadData(pathname) next set objFolder=nothing set objSubFolders=nothing set fso=nothing end sub &#39;创建一个空的XML文件,为写入文件作准备 sub CreateXml(FilePath) &#39;程序开始执行时间 startime=timer() dim XmlDoc,Root Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM") XmlDoc.async = False Set Root = XmlDoc.createProcessingInstruction("xml","version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;") XmlDoc.appendChild(Root) XmlDoc.appendChild(XmlDoc.CreateElement("root")) XmlDoc.Save(Server.MapPath(FilePath)) Set Root = Nothing Set XmlDoc = Nothing LoadData(ZipPathDir) &#39;程序结束时间 endtime=timer() response.Write("页面执行时间:" & FormatNumber((endtime-startime),3) & "秒") end sub %>

以上就是在asp下通过xml打包网站文件的方法的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • 本文详细介绍了 Android 开发中 layout_gravity 属性的使用方法及其在不同布局下的效果,旨在帮助开发者更好地理解和利用这一属性来精确控制视图的布局。 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文详细介绍超文本标记语言(HTML)的基本概念与语法结构。HTML是构建网页的核心语言,通过标记标签描述页面内容,帮助开发者创建结构化、语义化的Web页面。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 优化后的摘要:本文详细分析了当前面临的挑战和机遇,结合具体实例探讨了如何通过创新和改革来推动长期可持续发展。文中还介绍了多种可行的解决方案,并强调了在不同阶段实施这些方案的重要性。 ... [详细]
author-avatar
夕祈文_279
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有