小女巫 发表于 2015-2-3 23:33:49

ASP编程:用ASP完成在线紧缩与解紧缩

因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。   1、成绩的提出
  跟着互连网的开展,网站的数目以惊人的数字增添。网站的感化除给宽大网友们供应信息新闻办事外,还应当成为网友们上传与下载文件的场合。在上传与下载文件的过程当中,传输工夫是关头,这就请求有较快的传输速度。在传输速度固定不变或是高低变化不大的情形下,尽可能减小传输文件的体积,是一个可行的举措:上传文件的时分,先将要上传的文件用WINRAR紧缩,上传胜利后在网站内经由过程法式完成解紧缩;下载文件的时分,先将要下载的文件在网站内经由过程法式完成紧缩然后再下载。本文就针对该成绩的处理停止切磋。

2、办法与申明
  起首要上传一个WINRAR的解压法式,就是WINRAR本人的解压法式,只需求它的中心法式RAR.EXE这个文件就能够了,在WINRAR的装置目次里可以找到。然后要上传一个履行RAR.EXE的法式 CMD.EXE 这个是WINDOWS操作体系里的法式,在体系盘WINNT/SYSTEM32文件夹中可以找到。上传完这两个文件后,就需求编写一些法式代码来完成紧缩与解紧缩。
  无妨将完成紧缩功效的文件取名为ZIP.ASP,完成解紧缩功效的文件取名为UNZIP.ASP。
  法式代码中包括了WINRAR这个使用法式的号令行语法,上面复杂引见一下:
  WinRAR <号令> -<开关1> -<开关N> <紧缩文件> <文件...> <@列表文件...> <解压途径\>
  号令 要 WinRAR 运转的字符组合代表功效。
  开关 切换操作指定类型,紧缩强度,紧缩文件类型,等等的界说。
  紧缩文件 要处置的紧缩文件名。
  文件 要处置的文件名。
  列表文件 列表文件是包括要处置文件称号的纯文本。文件名应当在第一卷启动。可以在列表文件中利用//字符后添加正文。例如,你可以包括两列字符串创立 backup.lst:c:\work\doc\*.txt //备份文本文档 c:\work\image\*.bmp //备份图片c:\work\misc并接着运转: winrar a backup @backup.lst你可以在号令行中同时指定通俗的文件名和列表文件名。
  解压途径 只与号令 e 和 x ,搭配利用。指出解压文件添加的地位。假如文件夹不存在时,会主动创立。

  字母号令列表:
  a 添加文件到紧缩文件 c 添加紧缩文件正文
  d 从紧缩文件删除文件 e 从紧缩文件解压紧缩,疏忽途径
  f 刷新紧缩文件中的文件 i 在紧缩文件中查找字符串
  k 锁定紧缩文件 m 挪动文件和文件夹到紧缩文件
  r 修复受损的紧缩文件 rc 重建丧失的卷
  rn 重定名紧缩文件 rr 添加数据恢复纪录
  rv 创立恢复卷 s 转换紧缩文件成为自解压文件类型
  s- 删除自解压模块 t 测试紧缩文件
  u 从紧缩文件中更新文件 x 以完全途径称号从紧缩文件解压紧缩
  其实法式代码中的关头的地方就是用Server.CreateObject("Wscript.Shell")来履行CMD.EXE,CMD.EXE运转RAR.EXE经由过程WINRAR的号令来履行解紧缩文件与紧缩文件的。

3、法式清单
ZIP.ASP法式清单:

<%
'main文件夹中包括cmd.exe rar.exe 例如:要紧缩的文件(*.mdb)
'紧缩后的寄存目次为main\data.rar
on error resume next
unzip_path=Server.mappath("main")&"\"
Set WshShell = server.CreateObject("Wscript.Shell")
IsSuccess = WshShell.Run ("winrar a "&unzip_path&"data
"&unzip_path&"*.mdb",1, False)
'WinRAR <号令> -<开关1> -<开关N> <紧缩文件> <文件...> <@列表文件...>
<解压途径\>
'号令: A - 添加到紧缩文件中
if IsSuccess = 0 Then
Response.write " 号令胜利履行!"
else
Response.write " 号令履行掉败!权限不敷或该法式没法运转"
end if
if err.number <> 0 then
Response.Write "<p>毛病号码:" & Err.number
Response.Write "<p>缘由:" & Err.description
Response.Write "<p>毛病来历:" & Err.Source
Response.Write
end if
%>

UNZIP.ASP法式清单:
<%
'main文件夹中包括cmd.exe rar.exe 要解紧缩的文件(*.rar)
'解紧缩后的寄存目次为main
on error resume next
unzip_path=Server.mappath("main")&"\"
Set WshShell = server.CreateObject("Wscript.Shell")
IsSuccess = WshShell.Run ("winrar x -r -o+ "&unzip_path&"*.rar
"&unzip_path&"",1, False)
'WinRAR <号令> -<开关1> -<开关N> <紧缩文件> <文件...> <@列表文件...>
<解压途径\>
'号令: X - 从紧缩文件中全途径解压文件
'开关: -R - 连同子文件夹
'开关: -O+ - 掩盖已存在的文件
'开关: -O- - 不掩盖已存在的文件
if IsSuccess = 0 Then
Response.write " 号令胜利履行!"
else
Response.write " 号令履行掉败!权限不敷或该法式没法运转"
end if
if err.number <> 0 then
Response.Write "<p>毛病号码:" & Err.number
Response.Write "<p>缘由:" & Err.description
Response.Write "<p>毛病来历:" & Err.Source
Response.Write
end if
%>

4、 结论
  本文经由过程利用RAR.EXE和 CMD.EXE这两个文件,在ASP编程中完成在线紧缩与解紧缩网站中的文件的功效。完成办法复杂,法式代码少,可供适用编程时自创利用。特别是在具有本人的办事器的情形下极为适用和便利。以上法式在Windows2000Sever及IIS5.0下运转经由过程。

问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时.

深爱那片海 发表于 2015-2-4 02:07:59

作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。

山那边是海 发表于 2015-2-5 13:37:25

以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。

再现理想 发表于 2015-2-10 11:24:01

多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。

灵魂腐蚀 发表于 2015-3-1 09:44:00

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

爱飞 发表于 2015-3-7 21:55:54

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

精灵巫婆 发表于 2015-3-11 07:57:37

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。

飘飘悠悠 发表于 2015-3-24 22:46:30

他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。

仓酷云 发表于 2015-3-26 13:09:43

以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。

小女巫 发表于 2015-4-10 19:55:56

Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write

乐观 发表于 2015-4-17 01:34:54

先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习

变相怪杰 发表于 2015-5-9 04:01:57

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:

若天明 发表于 2015-6-4 17:53:22

我想问如何掌握学习节奏(先学什么再学什么)最好详细点?

小魔女 发表于 2015-6-18 02:08:43

完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。

admin 发表于 2015-6-20 21:31:46

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。

谁可相欹 发表于 2015-6-28 22:00:49

代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。

小妖女 发表于 2015-7-14 00:48:34

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。

愤怒的大鸟 发表于 2015-7-14 04:22:14

不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍

只想知道 发表于 2015-7-16 00:00:25

用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

海妖 发表于 2015-7-23 00:03:59

哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
页: [1]
查看完整版本: ASP编程:用ASP完成在线紧缩与解紧缩