ASP自动解压RAR文件

数码时尚

  WinRAR这个软件大家一定非常熟悉,它用来压缩和解压文件。大家是否想到使用ASP文件也可以自动解压RAR文件?这样,访问你网站的网友不用在自己机器上安装WinRAR就能在线解压放在你站点上的RAR文件,为他们增加了不少的便利。下面笔者就详细介绍一下如何实现这种功能。

  其实想实现这种功能很简单,首先,需要一个WinRAR解压程序,我们就使用它的核心程序“RAR.EXE”这个文件就可以了;然后还需要Windows2000的内置命令文件“CMD.EXE”,当然,还需要一个压缩包文件,这里新建一个名为“cmd.rar”压缩包,最后,就开始编写实现自动解压RAR压缩包的ASP文件。

  使用记事本新建一个名为“rar.asp”的ASP文件,在文件中输入以下内容:

  <%

  dim ylj,ywj,mlpath,Shell,rarcomm,RetCode,cmd,comm,fso

  mlpath = "e:\page\main\"

  ylj=server.mappath("main")&"\"

  ywj=server.MapPath("main\cmd.rar")

  Set Shell = Server.CreateObject("WScript.Shell")

  rarcomm= "e:\page\main\cmd.exe /c"&mlpath&"rar.exe x -t -o+ -p- "

  cmd=rarcomm&ywj&" "&ylj

  RetCode = Shell.run(cmd,1,true)

  %>

  分析:

  第一行:“<%”和最后一行的“%>”分别表示ASP文件内容的开始和结束。

  第二行:“dim”语句用来声明变量的,“dim”后面的“ylj,ywj,mlpath,Shell,rarcomm,RetCode,cmd”都是被声明的变量。

  第三行:“mlpath = "e:\page\main\”指存放RAR.EXE和CMD.EXE文件的路径,其中“e:\page\main\”是指笔者Web目录的绝对路径,当然这个值需要每个用户根据自己的网站目录的绝对路径进行修改。

  第四行:“ylj=server.mappath("main")&"\"”定义了解压后的文件所存放的路径,其中“main”是指Web目录下的main文件夹,这里使用了“Server”对象的“mappath”方法。

  第五行:定义要解压的cmd.rar文件的路径,它位于main目录下。

  第六行:使用“Server”对象的“CreateObject”方法创建一个对象“Shell”。

  第七行:给“rarcomm”变量赋值,其中“cmd.exe ”带“/c”参数是指执行字符串指定的命令然后终止,“rar.exe”命令所带的“x -t -o+ -p-”参数分别指“用绝对路径解压文件、测试压缩文件、覆盖已存在文件、不询问密码”。

  第八行:给“cmd”变量赋值。

  第九行:使用“Shell”对象的“run”方法执行“cmd”变量所包含的命令。

  最后,将“RAR.EXE”、“CMD.EXE”和“rar.asp”这三个文件上传到Web服务器的相应目录下,这个目录在服务器上的绝对路径一定是“e:\page\main\”,否则一定要根据实际情况修改第三行和第七行,然后将“cmd.rar”压缩包上传到“main”目录下。

  最后在浏览器中键入“http:\\服务器地址\文件路径\rar.asp”,这样就可以实现使用ASP自动解压“cmd.rar”文件。