標簽歸檔:webzip

ASP WEBZip – 貓七原創ASP壓縮解壓系統

1.下載地址

?????? ? http://www.okfdzs53.com/products/webzip.rar

2.程序源碼

????? ??http://www.okfdzs53.com/p/webzip-code

3.使用說明

???????? http://www.okfdzs53.com/p/webzip-demo

4.未解決問題

?????? ADODB.Stream讀取asp文件時,如果文件結尾為%>,則%后的>會被忽略掉,現在本人暫未解決這個問題,用戶可以在以%>結尾的asp文件,請在后邊添加一個空格或換行符,恢復后程序即可正常使用。

貓七原創ASP壓縮解壓系統 使用說明

1.下載&安裝

?????? 到http://www.okfdzs53.com/products/webzip.rar,保存為webzip.rar以供備用。

2.壓縮

?????? 將webzip.rar中的webzip.asp、webzip.asp.webzip解壓到要壓縮的目錄。在瀏覽器中訪問[hostname]/[保存路徑]/webzip.asp打開本工具,點擊壓縮,稍等片刻,即可打包完畢。

3.上傳

???? 將webzip.asp、webzip.asp.webzip通過FTP或在線文件管理系統上傳到您的站點目錄。

4.解壓

?????在瀏覽器中訪問[hostname]/[保存路徑]/webzip.asp,選擇解壓。稍等片刻,您的整個站點將會在服務服務器上解壓完畢。

??? 至此,您的整個站點即可正常使用了。

[Debug]
1.ADODB.Stream讀取asp文件時,如果文件結尾為%>,則%后的>會被忽略掉,現在本人暫未解決這個問題,用戶可以在以%>結尾的asp文件,請在后邊添加一個空格或換行符,恢復后程序即可正常使用。

2.如果您在使用中發現出現某些問題,可直接致郵:mqycn@126.com

貓七原創ASP壓縮解壓系統(非調用WinRAR等軟件)-WEBZip

貓七原創ASP壓縮解壓系統-WEBZip,原理即遍歷當前目錄的所有文件和文件夾,將結果保存到MDB數據庫中?,F在已經實現了ASP無需任何插件,僅用Access數據庫。
全部代碼如下:

<%
Server.ScriptTimeout=9999
Response.Buffer=false

Dim WEBZip_Path,WEBZip_Date,WEBZip_CMD,WEBZip_File
Dim WEBZip_FSO,WebZip_Conn,WEBZip_Rs,WEBZip_ADOStrem

'壓縮相關
'================================================================
Function findFiles(p)
	savePath(p)
	for each s in p.subfolders
		findFiles(s)
	next
	for each f in p.files
		saveFile(f)
	next
End Function

Function savePath(p)
	If trim(replace(p,WEBZip_Path,""))="" Then Exit Function
	RunSqlOne("insert into [p]([p_na],[p_pa],[p_cn])values('"&p.name&"','"&replace(p,WEBZip_Path,"")&"',"&p.subfolders.count&")")
	echo "找到路徑:"&p
End Function

Function saveFile(f)
	If instr(f,WEBZip_File)>0 Then Exit Function
	RunSqlOne("insert into [f]([f_na],[f_pa],[f_sz])values('"&f.name&"','"&replace(f,WEBZip_Path,"")&"',"&f.size&")")
	SaveFileContent(replace(f,WEBZip_Path,""))
	echo "壓縮文件:"&f
End Function

'寫入文件內容
Function SaveFileContent(f)
	fl=WEBZip_FSO.getfile(Server.Mappath(f))
	WEBZip_Rs.Open "select * from [f] where [f_pa]='"&f&"'",WEBZip_Conn,3,2
	With WEBZip_ADOStrem
		.Type = 1
		.Open
		.LoadFromFile fl
		WEBZip_Rs("f_co") = .Read
		.Close
	End With
	WEBZip_Rs.update
	WEBZip_Rs.Close
End Function

'解壓縮相關
'================================================================
Function Expand()
	WEBZip_Rs.open "select * from [p] order by [p_id] asc",WEBZip_Conn,1,1
	Do While Not WEBZip_Rs.eof
		Call ExpandPath(WEBZip_Rs("p_pa"))
		WEBZip_Rs.MoveNext
	Loop
	WEBZip_Rs.Close
	
	WEBZip_Rs.open "select * from [f] order by [f_id] asc",WEBZip_Conn,1,1
	Do While Not WEBZip_Rs.eof
		if WEBZip_Rs("f_sz")< =1 then
			Call CreateFile(WEBZip_Rs("f_pa"))
		else
			Call ExpandFile(WEBZip_Rs("f_pa"),WEBZip_Rs("f_id"))
		end if
		WEBZip_Rs.MoveNext
	Loop
	WEBZip_Rs.Close
End Function

Function ExpandPath(p)
	p=Server.Mappath(p)
	If Not WEBZip_FSO.FolderExists(p) Then
		WEBZip_FSO.CreateFolder(p)
		echo "解壓目錄:"&p
	End if
End Function

Function ShowFile()
	id=Request.QueryString("id")
	if not isNumeric(id) or trim(id)="" then Response.end
	WEBZip_Rs.open "select [f_co],[f_sz] from [f] where [f_id]="&id,WEBZip_Conn,1,1
	if not WEBZip_Rs.eof then
		WEBZip_RsDB=WEBZip_Rs(0).GetChunk(WEBZip_Rs(1))
	End if
	WEBZip_Rs.Close
	Response.BinaryWrite WEBZip_RsDB
End Function

Function ExpandFile(f,id)
	fl=Server.Mappath(f)
	Set Http=Server.CreateObject("MSXML2.XMLHTTP")
	randomize
	Http.open "GET","http://"&Request.Servervariables("SERVER_NAME")&":"&Request.Servervariables("SERVER_PORT")&Request.Servervariables("SCRIPT_NAME")&"?cmd=show&id="&id&"&f="&now()&rnd&f,False
	Http.send()
	if Http.readystate<>4 then
		exit Function
	end if
	
	With WEBZip_ADOStrem
		.Type = 1
		.Mode = 3
		.Open
		.Write Http.ResponseBody
		.SaveToFile Server.Mappath(f)
		.Close
	End With
	echo "解壓文件:"&f
End Function

Function CreateFile(f)
	fl=Server.Mappath(f)
	WEBZip_FSO.CreateTextFile(fl)
	echo "解壓文件:"&f
End function

'菜單
'================================================================
Function ShowMenu()
	Response.write "&lt;input id=""status""  style=""width:640px;background:#FFF;border:none;"" readonly=""readonly""/>&lt;hr />"
	Call AddLink("壓縮","tozip")
	Call AddLink("解壓","unzip")
	Call AddLink("卸載[暫不支持]","uninstall")
End Function

Function AddLink(t,l)
	Response.write "&lt;a href=""?cmd="&CommandToQuery(l)&""">"&t&"&lt;/a> "
End Function

Function RunSqlOne(sql)
	WEBZip_Rs.Open sql,WebZip_Conn,3,2
End Function

sub echo(t)
	'Response.write t&vbCrlf
	Response.write "&lt;script>document.getElementById(""status"").value='"&replace(t,"\","\\")&"';&lt;/script>"
	'Response.flush
End Sub

'擴展命令
'	tozip 壓縮
'	unzip 解壓
'	即將支持
'		tozip -t fr			小文件模式
'		tozip -t mu -f 100 	多文件模式,指定-f為100,每次處理100個文件
'	擴展命令轉換
'		tozip -t fr -f 100 < ==>  tozip&t=fr&f=100
Function CommandToQuery(c)
	CommandToQuery=replace(replace(c," -","&")," ","=")
End Function

Function QueryToCommand(q)
	QueryToCommand=replace(replace(q,"&"," -"),"="," ")
End Function

'初始化
'================================================================
'WEBZip 安裝路徑
WEBZip_File=Server.Mappath(Request.Servervariables("SCRIPT_NAME"))
WEBZip_Path=Server.Mappath("./")
WEBZip_Date=WEBZip_File&".webzip"
WEBZip_CMD=Request.QueryString("cmd")

set WEBZip_FSO=Server.CreateObject("Scripting.FileSystemObject")

set WebZip_Conn=Server.CreateObject("ADODB.Connection")
WebZip_Conn.Open "provider=microsoft.jet.oledb.4.0;data source="&WEBZip_Date
set WEBZip_Rs=Server.CreateObject("ADODB.Recordset")

set WEBZip_ADOStrem=Server.CreateObject("ADODB.Stream")

'初始化菜單
Select Case WEBZip_CMD
	Case "tozip"
		Call ShowMenu()
		Call findFiles(WEBZip_FSO.GetFolder(Server.Mappath("./")))
	Case "unzip"
		Call ShowMenu()
		Call Expand()
	Case "show"
		Call ShowFile()
	Case Else
		Call ShowMenu()
End Select
%>