PHP上传RAR压缩包并解压目录

一、PHP上传并解压的原理
     普通上传功能-->上传到服务器-->加载系统组件-->执行解压命令-->成功解压到目录(其中加载的系统组件是rar、zip等)
二、PHP执行系统命令的几类函数及区别
    PHP中三个调用系统命令的函数system(), exec(), passthru() 比较:
       system()   输出并返回最后一行shell结果。
       exec()   不输出结果,返回最后一行shell结果
       passthru() 只调用命令,把运行结果原样地输出
       new com()  系统预定义com类,根据需要任意选择内置方法
相同点:都可以获得命令执行的状态码
三、使用PHP 预定义的Com组件加载Shell
       $obj=new com("wscript.shell");
   //加载wscript.shell用来执行dos命令的组件
       $obj->run(“所要执行的命令内容”);
       例子:Rar解压命令:  winrar x  被解压文件  加压的位置
四、实例操作
<?php
      if ($_POST['sub']){
         $tmpname = $_FILES['filename']['tmp_name'];
         $filename = $_FILES['filename']['name'];
move_uploaded_file($tmpname,$filename);
$dir = getcwd();
$obj = new com("wscript.shell");
$obj->run("winrar x $dir\".$filename." ".$dir, 1, true);
unlink("$filename");
   }
?>
<form enctype="multipart/form-data" action="" method="POST">
选择文件<input type="file" name="filename"/>
        <input type="submit" name="sub" value="提交并解压">
</form>
posted @ 2012-07-17 20:47  gxldan  阅读(243)  评论(0编辑  收藏  举报