ASP在线执行WinRAR压缩文档
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
1.要压中文档名,须下载中文版WinRAR,安装后,再将其中的rar.exe复制出来
2.网络执行,必须将rar.exe与被压缩的文件(或文件夹)置于相同目录下 (网络执行压缩不支持相对路径,如果使用绝对路径,压出来的文档,会按照绝对路径一层一层压进去) 3.下载并注册,在线执行Server端外部程序的组件:ASPEXEC(免费组件) 4.透过ASPEXEC执行→bat档→rar.exe(如此才能压缩出正确路径的压缩档) 例:压缩d:\tmp\tmp_a\tmp_b资料夹中的所有子资料夹及档案(含长中文档名看看) 方法: 1.将rar.exe复制到d:\tmp\tmp_a\下,也就是与tmp_b同层目录 2.建立bat档放在哪里无所谓,就放在D:\addzip.bat(addzip.bat内容如下), D: cd tmp\tmp_a rar.exe a -r tmp_b.zip tmp_b 3.ASP程序码 '利用ASPExec组件执行压缩------------------------------------- set Executor = Server.CreateObject("ASPExec.Execute") Executor.Application = "d:\addzip.bat" strResult = Executor.ExecuteDosApp Response.Write "<pre>" & strResult & "</pre>" Set Executor = Nothing PS:正常写法应该是如下,但不支持相对路径,而如果使用绝对路径,则压缩档内容,就会把所有路径资料夹都包进去。 '利用ASPExec组件执行压缩------------------------------------- set Executor = Server.CreateObject("ASPExec.Execute") Executor.Application = "d:\tmp\tmpa\rar.exe" Executor.Parameters = " a -r tmp_b.zip tmp_b" (使用相对路径,完全无法执行) Executor.Parameters = " a -r d:\tmp\tmp_a\tmp_b\tmp_b.zip d:\tmp\tmp_a\tmp_b\tmp_b"(使用绝对路径,可以执行,但多了tmp及tmp_a空资料夹) strResult = Executor.ExecuteDosApp Response.Write "<pre>" & strResult & "</pre>" Set Executor = Nothing ============================================================ 补充说明: 今日测试在线压缩时,遇到被压缩的文件夹中又包含另一个.zip档,结果可以压缩成功,但无法解压,总是出现「多重压缩损毁...」的问题。 后来将压缩档改成rar格式,就顺利解决,所以上面范例的bat档内容建议 改成:(tmp_b.zip-->tmp_b.rar ) D: cd tmp\tmp_a rar.exe a -r tmp_b.rar tmp_b 该文章在 2011/4/23 0:01:40 编辑过 |
关键字查询
相关文章
正在查询... |