用asp实现把文件打包成Xml文件包,带解包的ASP工具附下载

把文件打包成Xml文件包,带解包的ASP工具!

把网站源码全部打包到Xml文件里面,生成 updata.xml 文件,把xml文件上传到空间里面
然后通过 install.asp文件将文件全部释放出来。
就和z-blog的 自动安装包一样的功能呵呵。
代码是落伍的一位兄弟写的,不过代码好像有错误,这个是我参考他的 修改过了,可以正常运行!~~
此代码可以应用到 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>文件打包程序</title>
</head>

<body>
<%

Dim ZipPathDir,ZipPathFile,ZipFileExt
    Dim startime,endtime
    '在此更改要打包文件夹的路径
    ZipPathDir = Left(Request.ServerVariables("PATH_TRANSLATED"),InStrRev(Request.ServerVariables("PATH_TRANSLATED"),"\"))'
    '生成的xml文件
    ZipPathFile = "update.xml"
    '不进行打包的文件扩展名
    ZipFileExt = "db;bak"
    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("=========="&DirPath&"==========<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")) and lcase(DirPath & objFile.name) <> lcase(DirPath & ZipPathFile) then
                        if ext(objFile.name) 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
                    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("页面执行时间:" & FormatNumber((endtime-startime),3) & "秒")
    end sub

'判断文件类型是否合法
    function ext(filename)
        ext = true
        dim temp_ext,e
        temp_ext = Split(ZipFileExt,";")
        for e=0 to ubound(temp_ext)
            if mid(filename,InstrRev(filename,".")+1)=temp_ext(e) then ext=false
        next
    end function
%>
</body>
</html>

解压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>文件解包程序</title>
</head>

<body>
<%
    Dim strLocalPath
    '得到当前文件夹的物理路径
    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 & "<br/>"
                        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 & "<br/>"
                                Response.Flush
                                .Close
                            End With
                        Set objStream = Nothing
                    Next
                Set objNodeList = nothing
            End If
        End If

Set objXmlFile = Nothing

response.write "文件解包完毕"
%>
</body>
</html>

打包文件下载

(0)

相关推荐

  • 用asp实现把文件打包成Xml文件包,带解包的ASP工具附下载

    把文件打包成Xml文件包,带解包的ASP工具! 把网站源码全部打包到Xml文件里面,生成 updata.xml 文件,把xml文件上传到空间里面 然后通过 install.asp文件将文件全部释放出来. 就和z-blog的 自动安装包一样的功能呵呵. 代码是落伍的一位兄弟写的,不过代码好像有错误,这个是我参考他的 修改过了,可以正常运行!~~ 此代码可以应用到 asp程序的 自动升级服务上面.具体怎么来实现,欢迎探讨!~~ 就在下面回帖探讨!~~~ 不用设定打包目录版,需要设定打包目录版 这两个

  • Windows下将Python文件打包成.EXE可执行文件的方法

    在使用Python做开发的时候,时不时会给自己编写了一些小工具辅助自己的工作,但是由于开发依赖环境问题,多数只能在自己电脑上运行,拿到其它电脑后就没法运行了.这显得很不方便,不符合我们的初衷,那么有没有一种什么办法可以使我们编写好的程序,可以直接在各种windows下运行的呢? 答案是:有的,说到windows大家都能想到( .exe )这个东西吧!没错,就是把Python编写的代码打包成可执行的 exe 文件,直接在系统上运行,这个问题不久完美解决了吗? 下面就来讲讲如何实现,具体如下: 安装

  • 将tensorflow模型打包成PB文件及PB文件读取方式

    1. tensorflow模型文件打包成PB文件 import tensorflow as tf from tensorflow.python.tools import freeze_graph with tf.Graph().as_default(): with tf.device("/cpu:0"): config = tf.ConfigProto(allow_soft_placement=True) with tf.Session(config=config).as_defaul

  • 一文解决springboot打包成jar文件无法正常运行的问题

    1.用intellij idea 创建了一个springboot的项目,前期都运行的好好的,在ide中可以正常运行,但是打包成Jar运行却一直报错. 2.经过不懈探索,终于找到解决办法 3.首先,找到pom.xml,把下面的build块中的内容改成如下所示 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-

  • 把Java程序打包成jar文件包并执行的方法

    本文介绍了把Java程序打包成jar文件包并执行的方法,分享给大家,具体如下: 1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是java Project 打包步骤: 1.在项目上,右键,选择Export. 2.进入到下图界面,选择Java 下面的JAR file 3.选择项目,确认必要的文件是否选中,选择保存jar文件包的路径,如下图 4.完成步骤3之后,点击Next,进入如下图界面: 5.直接点Next,进入下面的界面

  • 把图象文件转换成XML格式文件

    把图象文件转换成XML格式文件 利用.NET 框架下的FromBase64String和ToBase64String方法可以很容易地实现图象文件和XML文件的互换.这样可以轻易解决以XML格式保存图片的问题.代码如下: Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows 窗体设计器生成的代码 " Public Sub New() MyBase.New() InitializeComponent(

  • php将文件夹打包成zip文件的简单实现方法

    示例如下: function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. while(($filename=readdir($handler))!==false){ if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和'..',不要对他们进行操作 if(is_dir($path."/&q

  • node-webkit打包成exe文件被360误报木马的解决方法

    最近项目需要用到node-webkit.处理古老级用户的兼容以及他们心里的'数据安全'问题. 1.下载完node-webkit 2.制作appName.nw文件 3.copy /b nw.exe+appName.nw  TestAppName.exe 到目前为止,目录下生成了TestAppName.exe文件 ,双击运行很完美. 但,直接将TestAppName.exe换个目录,却打不开. google+百度的解决方案:使用Enigma Virtual Box工具,打包成exe文件.(Enigm

  • Python脚本文件打包成可执行文件的方法

    将Python脚本文件包装成可执行文件,其目的有二: 一则: 不需要依赖Python编译器就可以运行软件 二则: 不想让自己的源码公布出去 常用的工具有: py2exe.cx_freeze等 [工具:py2exe] 安装py2exe 安装该工具很简单: 只需要从官方网站:http://www.py2exe.org/下载与版本对应的安装程序,点击下一步即可完成安装. 安装后,执行import py2exe,不报错则表示安装成功! 复制代码 代码如下: >>> import py2exe 

  • JAVA 根据Url把多文件打包成ZIP下载实例

    压缩文件代码工具类: public class UrlFilesToZip { private static final Logger logger = LoggerFactory.getLogger(UrlFilesToZip.class); //根据文件链接把文件下载下来并且转成字节码 public byte[] getImageFromURL(String urlPath) { byte[] data = null; InputStream is = null; HttpURLConnec

随机推荐