asp FSO在线压缩解压缩代码

asp FSO在线压缩解压缩代码
<%
''=====================
''FSO在线压缩解压缩
'自动生成HYTop.mdb
''=====================
Sub AddToMdb(thePath)
 On Error Resume Next
 Dim Rs, Conn, Stream, ConnStr, adoCatalog, FsoX
 Set FsoX = CreateObject("Scripting.FileSystemObject")
 If FsoX.FileExists(Server.MapPath("HYTop.mdb")) Then
  FsoX.DeleteFile(Server.MapPath("HYTop.mdb"))
 End If
 Set Rs = Server.CreateObject("Adodb.RecordSet")
 Set Stream = Server.CreateObject("Adodb.Stream")
 Set Conn = Server.CreateObject("Adodb.Connection")
 Set adoCatalog = Server.CreateObject("ADOX.Catalog")
 ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("HYTop.mdb")
 adoCatalog.Create ConnStr
 Conn.Open ConnStr
 Conn.Execute("Create Table FileData(Id int IDENTITY(0,1) Primary Key Clustered, thePath VarChar, fileContent Image)")
 Stream.Open
 Stream.Type = 1
 Rs.Open "FileData", Conn, 3, 3
 fsoTreeForMdb thePath, Rs, Stream 
 Rs.Close
 Conn.Close
 Stream.Close
 Set Rs = Nothing
 Set Conn = Nothing
 Set Stream = Nothing
 Set adoCatalog = Nothing
End Sub

Sub fsoTreeForMdb(ThePath, Rs, Stream)
 Dim Item, TheFolder, Folders , Files, SysFileList, FsoX
 Set FsoX = Server.CreateObject("Scripting.FileSystemObject")
 SysFileList = "$HYTop.mdb$HYTop.ldb$"
 
 If FsoX.FolderExists(ThePath) = False Then
  Response.write(ThePath&"目录不存在或不允许访问!")
 End If
 Set TheFolder = FsoX.GetFolder(ThePath)
 Set Files = TheFolder.Files
 Set Folders = TheFolder.SubFolders
 For Each Item In Folders
  fsoTreeForMdb Item.Path, Rs, Stream
 Next
 For Each Item In Files
  If InStr(SysFileList, "$" & Item.Name & "$") <= 0 Then
    Rs.AddNew
    Rs("thePath") = Mid(Item.Path,Len(Request("thePath"))+1)
    Stream.LoadFromFile(Item.Path)
    Rs("fileContent") = Stream.Read()
    Rs.Update
  End If
 Next
 Set Files = Nothing
 Set Folders = Nothing
 Set TheFolder = Nothing
 Set FsoX = Nothing
End Sub
 
Sub unPack(thePath)
 On Error Resume Next
 Server.ScriptTimeOut = 5000
 Dim Rs, Ws, Str, Conn, Stream, ConnStr, theFolder, FsoX
 Str = Server.MapPath(".") & ""
 Set FsoX = CreateObject("Scripting.FileSystemObject")
 Set Rs = CreateObject("Adodb.RecordSet")
 Set Stream = CreateObject("Adodb.Stream")
 Set Conn = CreateObject("Adodb.Connection")
 ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & thePath & ";"
 Conn.Open ConnStr
 Rs.Open "Select * from FileData", Conn, 1, 1
 Stream.Open
 Stream.Type = 1
 Do Until Rs.Eof
  TheFolder=Left(Rs("thePath"),InStrRev(Rs("thePath"),""))
  response.Write Str&TheFolder&"&nbsp;&nbsp;存在?"&FsoX.FolderExists(Str&theFolder)&"<br>"
  If FsoX.FolderExists(Str&theFolder)=False Then
     TheFolderArr=split(TheFolder,"")
     If Ubound(TheFolderArr)>2 Then
      TheFolderStr=""
      For Xid=0 To ubound(TheFolderArr)
       TheFolderStr=TheFolderStr&TheFolderArr(Xid)&""
       FsoX.CreateFolder(Str&TheFolderStr)
      Next
   Else
      FsoX.CreateFolder(Str&TheFolder)
   End If
  End If
  Stream.SetEos()
  Stream.Write Rs("fileContent")
  Stream.SaveToFile Str&Rs("thePath"),2
  Rs.MoveNext
 Loop
 Rs.Close
 Conn.Close
 Stream.Close
 Set Ws = Nothing
 Set Rs = Nothing
 Set Stream = Nothing
 Set Conn = Nothing
 Set FsoX = Nothing
End Sub

Sub CreateFolder(thePath)
 Dim i, FsoX
 Set FsoX = CreateObject("Scripting.FileSystemObject")
 i = Instr(thePath, "")
 Do While i >0
  If FsoX.FolderExists(Left(thePath, i)) = False Then
   FsoX.CreateFolder(Left(thePath, i - 1))
  End If
  If InStr(Mid(thePath,i,1),"") Then
   i = i+Instr(Mid(thePath,i,1),"")
  Else
   i = 0
  End If
 Loop
End Sub
If Trim(Request("Zip")) <> "" Then
 AddToMdb(Request("thePath"))
 Response.Write("压缩文件完毕! ")
 Response.Write("<a href=HYTop.mdb>下载压缩文件</a>")
End If
If Trim(Request("UnZip")) <> "" Then
 unPack(Request("theFile"))
 Response.Write("解压完毕!")
End If
%>

<style type="text/css">
<!--
.STYLE1 {color: #FF0000}
.STYLE2 {
 color: #FFFFFF;
 font-weight: bold;
 font-size: 14px;
}
*{font-size:12px;}
-->
</style>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<form id="form1" name="form1" method="post" action="">
  <table width="100%" height="25" border="0" cellpadding="0" cellspacing="1" bgcolor="#66CCCC">
    <tr>
      <td height="30" colspan="3" align="center"><span class="STYLE2">ASP 在线压缩-解压缩</span></td>
    </tr>
    <tr>
      <td width="35%" height="25" bgcolor="#FFFFFF">压缩目录(压缩完成后默认为本程序目录下 <span class="STYLE1">HYTop.mdb</span> 文件)</td>
      <td width="41%" height="25" bgcolor="#FFFFFF">
      &nbsp; <input name="thePath" type="text" id="thePath" value="<% If Right(Server.MapPath("."), 1) <> "" Then Response.Write(Server.MapPath(".")) & "" Else Response.Write(Server.MapPath(".")) End If %>" size="60" /></td>
      <td width="24%" height="25" bgcolor="#FFFFFF"><input name="Zip" type="submit" id="Zip" value="在线压缩" /></td>
    </tr>
    <tr>
      <td height="25" bgcolor="#FFFFFF">解压缩文件(默认为本程序目录下 <span class="STYLE1">HYTop.mdb</span> 文件)</td>
      <td height="25" bgcolor="#FFFFFF">&nbsp; <input name="theFile" type="text" id="theFile" value="<%=Server.MapPath("HYTop.mdb")%>" size="60" /></td>
      <td height="25" bgcolor="#FFFFFF">
      <input name="UnZip" type="submit" id="UnZip" value="在线解压缩" /></td>
    </tr>
  </table>
</form>

时间: 2024-08-31 09:04:35

asp FSO在线压缩解压缩代码的相关文章

用ASP实现在线压缩与解压缩

一.问题的提出 随着互连网的发展,网站的数量以惊人的数字增加.网站的作用除了给广大网友们提供信息资讯服务外,还应该成为网友们上传与下载文件的场所.在上传与下载文件的过程中,传输时间是关键,这就要求有较快的传输速度.在传输速度固定不变或是上下变动不大的情况下,尽量减小传输文件的体积,是一个可行的办法:上传文件的时候,先将要上传的文件用WINRAR压缩,上传成功后在网站内通过程序实现解压缩:下载文件的时候,先将要下载的文件在网站内通过程序实现压缩然后再下载.本文就针对该问题的解决进行探讨. 二.方法

asp 简单在线用户统计代码

asp教程 简单在线用户统计代码 这代码是用了asp apliction 与session实例的哦. <script language="vbscript" runat="server"> sub Application_onStart application.Lock() application("use_online")=0 application.UnLock() end sub sub application_onend ap

asp+fso在线管理图片功能[原创]_应用技巧

复制代码 代码如下: <% '--------------------------------------------- '##############20060528新增加了对端口的支持 '作者:dxy QQ:461478385 Email:douxy001@gmail.com '功能完善 %> <!--#include file="global.asp"--> <!--#include file="session.asp"-->

asp+fso在线管理图片功能 原创

复制代码 代码如下: <% '--------------------------------------------- '##############20060528新增加了对端口的支持 '作者:dxy QQ:461478385 Email:douxy001@gmail.com '功能完善 %> <!--#include file="global.asp"--> <!--#include file="session.asp"-->

ASP FSO文件操作函数代码(复制文件、重命名文件、删除文件、替换字符串)_应用技巧

FSO文件(File)对象属性 DateCreated 返回该文件夹的创建日期和时间 DateLastAccessed 返回最后一次访问该文件的日期和时间 DateLastModified 返回最后一次修改该文件的日期和时间 Drive 返回该文件所在的驱动器的Drive对象 Name 设定或返回文件的名字 ParentFolder 返回该文件的父文件夹的Folder对象 Path 返回文件的绝对路径,可使用长文件名 ShortName 返回DOS风格的8.3形式的文件名 ShortPath 返

asp实现在线剪切图片代码

<%DIM LEFT1,top1 left1=request.Form("left") top1=request.Form("top") left1=left(left1,len(left1)-2) top1=left(top1,len(top1)-2) w=request.form("width") Set Jpeg = Server.CreateObject("Persits.Jpeg") Jpeg.RegKey =

Asp.net在线备份、压缩和修复Access数据库示例代码

这篇文章主要介绍了Asp.net如何在线备份.压缩和修复Access数据库,需要的朋友可以参考下 1.问题的提出    在设计中小型Web应用程序时,可以选择Microsoft Accesss为数据库.在数据库的使用过程中经常性进行增加和删除操作.事实上,Microsoft Access并不能有效地释放已分配的但被删除的对象空间,这将意味着即使你删除了一个对象,而这个对象仍然占据着数据库的空间,使得数据库越来越大.不但占用不必要的空间,而且降低了数据库的效率.特别在虚拟站点上的问题尤为突出.因此

Asp.net在线备份、压缩和修复Access数据库示例代码_实用技巧

1.问题的提出 在设计中小型Web应用程序时,可以选择Microsoft Accesss为数据库.在数据库的使用过程中经常性进行增加和删除操作.事实上,Microsoft Access并不能有效地释放已分配的但被删除的对象空间,这将意味着即使你删除了一个对象,而这个对象仍然占据着数据库的空间,使得数据库越来越大.不但占用不必要的空间,而且降低了数据库的效率.特别在虚拟站点上的问题尤为突出.因此对Access数据库进行压缩瘦身很有实际意义. 虽然Access数据库自身具有"压缩和修复数据库&quo

asp FSO 读写文件本文件实现代码

 asp己经过时有一段时间了,我来讲述一下利用asp fso来实现文件读写操作,有需要学习的朋友可参考参考.   1.AtEndOfStream 该属性表明是否已到达整个文本文件末尾.其值为"TRUE"或"FALSE" 2.CreateTextFile 用来创建新的文本文件 3.OpenTextFile()方法中的参数 saucer(思归)所写的:  代码如下   Set f = fso.OpenTextFile("c:testfile.txt"