如何在PHP中创建压缩的RAR文件?
在网站中,上传文件大多数都是以压缩包形式存在的,所以我们首先必须要将上传的文件压缩后才能够上传,那么我们如何实现网站中上传文件的自动压缩功能呢?今天就给大家详细介绍一下!
文件压缩主要应用PHP 的预定义类 com,将wscrip.shell 对象作为 com类的参数,最终通过调用 com类的 run()方法实现文件的压缩。
com 类提供了一个将 COM组件整合到 PHP 脚本中的框架,实例化方法如下:
$obj = new COM("server.object")
com类构造函数的语法如下:
string COM::COM( string module_name [, string server_name [, int codepage]] )
参数说明:
module_name:被请求组件的名字 或者 class-id。
server_name :DCOM 服务器的名字,组件在此服务器上被取用,如果是NULL,那么假定是loaclhost。如果要支持允许DCOM,那么必须将 php.ini 中的 com.allow_dcom设置为 TRUE。
codepage:指定用于将PHP 字符串(php-string)转换成UNICODE 字符串(unicode-strings)的代码页,反之亦然。可用的值有CP_ACP , CP_MACCP , CO_OEMCP , CP_SYMBOL , CP_THREAD_ACP, CP_UTF7以及CP_UTF8。
com类中的 run()方法的语法格式如下:
run("winrar a 生成的 rar 文件的路径及名称 要压缩的文件的路径以及名称",1,false);
应用实例
本实例中讲解在PHP中如何创建 RAR文件,具体步骤如下:
(1)创建PHP页面,首先创建一个表单,设置文件域,提交要压缩的文件,设置文本框,提交压缩文件的存储位置,设置按钮,完成表单元素的提交操作。
(2) 在php文件中编写 PHP脚本,通过post方法获取表单提交的数据,通过iconv()函数完成数据编码格式的转换,实例化 com类,调用 run()方法完成文件的压缩操作。
其代码如下:
<?php header("Content-Type:text/html; charset=utf-8"); if ($_POST['Submit']){ $sourcefile = iconv("utf-8","gb2312",$_POST['sourcefile']); //获取指定文件的路径 $objfile = $_POST['objfile']."\\".time(); //定义压缩文件的存储位置和名称 $objfile = iconv("utf-8","gb2312",$objfile); //实现编码转换 $obj= new COM("wscript.shell"); //实例化 com类 $obj -> run("winrar a".$objfile."".$sourcefile."",1,false); //调用类中的方法 echo "<script>alert('文件压缩完成!');</script>"; } ?>
运行本实例,首先选择要压缩的文件,然后设置压缩文件的存储位置,单击“提交”按钮,就完成了!
注意:
在执行文件压缩操作时,切记在文件的存储路径中不要出现空格(包括被压缩文件的路径、名称一级压缩文件的存储路径),否则压缩操作将不会正确执行!
到这里我们就介绍完如何在PHP中创建压缩的RAR文件了,小伙伴们都掌握了吗?
以上就是如何在PHP中创建压缩的RAR文件?的详细内容,更多请关注其它相关文章!
下一篇: php面向对象进阶设计模式:装饰器模式