1、PHP上传压缩包并解压的大概流程: 普通上传功能-上传到服务器-加载系统组件-找到上传的文件并执行解压命令-成功解压到目录 2、PHP执行系统命令的几类函数:(1) system() 输出
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,); 10 11 $obj=new com('wscript.shell'12 双引号可以解析变量 13 $obj->run("winrar x $filepath $path",1,true14 删除源文件 15 @unlink(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>
轻松搞定~