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

王朝学院·作者佚名  2009-04-24
窄屏简体版  字體: |||超大  

由于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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航