WEB开发网
开发学院WEB开发ASP ASP在线解压zip文件以及采集gzip压缩的页面的方法... 阅读

ASP在线解压zip文件以及采集gzip压缩的页面的方法

 2009-04-23 10:40:55 来源:WEB开发网   
核心提示:由于winrar的命令行工具不支持zip格式的文件,所以我选择了7z的命令行工具7za.exe,在百度搜索下就可以找到在使用下面的代码前把cmd.exe(windows文件夹下有)和7za.exe拷贝到asp程序目录代码(JScript格式)时间关系,ASP在线解压zip文件以及采集gzip压缩的页面的方法,并没有写更

由于winrar的命令行工具不支持zip格式的文件,所以我选择了7z的命令行工具7za.exe,在百度搜索下就可以找到
在使用下面的代码前把cmd.exe(windows文件夹下有)和7za.exe拷贝到asp程序目录

代码(JScript格式)
时间关系,并没有写更多的容错以及返回值问题

function unZip(file){
   //在线解压zip函数
   //by fisker (http://ifisker.com lionkay@Gmail.com)
   var objfso=Server.CreateObject("scripting.FileSystemObject");
   var objWshShell=Server.CreateObject("Wscript.Shell");
   var zipFile=Server.MapPath(file);
   if(!objFso.FileExists(zipFile)) return false;
   var runcmd=Server.MapPath("cmd.exe")+" /c "+Server.MapPath("7za.exe")+" x "+zipFile+" -y -o"+Server.MapPath("./");
   var RetCode = objWshShell.Run(runcmd,1,true);
   if(RetCode!=0)return false;
   delete objWshShell;
   delete objFso;
}

关于gzip压缩页面的问题
思路:用ServerxmlHTTP组件下载页面,保存为*.zip文件,解压文件,读取文件
代码(JScript格式)

function getGzipPage(url){
   //Gzip格式页面采集程序
   //by fisker (http://ifisker.com lionkay@gmail.com)
   var fileStream;
   var xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP");
   xmlHttp.open("GET",url,false);
   xmlHttp.send(null);
   fileStream=xmlHttp.responseBody;
   delete xmlHttp;
   var objStream = Server.CreateObject("ADOD"+"B.Stream");
   objStream.Type = 1;
   objStream.Open();
   objStream.write(fileStream);
   objStream.SaveToFile(Server.MapPath("tmp.html.zip"),2);
   objStream.Flush();
   objStream.Close();
   delete objStream;
   unZip("tmp.html.zip");
   var str=ReadFile("tmp.html");//ReadFile,deleteFile就是简单的文本读取和文件删除函数,未附代码
   deleteFile("tmp.html.zip");
   deleteFile("tmp.html");
   return str;
}

作者:fisker

Tags:ASP 在线 解压

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接