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- 王朝網路 版權所有 導航