PHP上传压缩包并自解压方法

1、PHP上传压缩包并解压的大概流程:

普通上传功能->上传到服务器->加载系统组件->找到上传的文件并执行解压命令->成功解压到目录

 

2、php执行系统命令的几类函数:
(1) system() 输出并返回最后一行shell结果。
(2) exec() 不输出结果,返回最后一行shell结果
(3) passthru() 只调用命令,把运行结果原样地输出
(4) new com()  系统预定义com类,根据需要任意选择内置方法(操作方式再麻烦,但也是功能最全的)
 
3、Com组件的用法:
(1)$obj=new com("wscript.shell");//加载 wscript.shell用来执行dos命令的组件
(2)$obj->run(“所要执行的命令内容”);//所要执行的命令和返回参数
 
由于只是说明原理,一些安全验证判断就不写出来了,大家可以自行补充。
通俗易懂,直接上代码:(记得打开php.ini里的 com.allow_dcom = true
 1 <?php

 2     

 3     if($_POST['submit']){

 4         $tmpname=$_FILES['filename']['tmp_name'];

 5         $filename=$_FILES['filename']['name'];

 6         $path=getcwd();//获取当前目录的绝对路径

 7         $filepath=$path.'\\'.$filename;    

 8 

 9         move_uploaded_file($tmpname, $filename);

10 

11         $obj=new com('wscript.shell');

12         //双引号可以解析变量

13         $obj->run("winrar x $filepath $path",1,true);

14         //删除源文件

15         @unlink($filename);

16 

17 

18     }

19 

20 

21 ?>

22 

23 

24     <form action="" method="post" enctype="multipart/form-data">

25         上传文件:<input type="file" name="filename"/>

26         <input type="submit" name="submit" value="上传文件并解压">

27     </form>

PHP上传压缩包并自解压方法PHP上传压缩包并自解压方法

轻松搞定~

你可能感兴趣的:(PHP)