zoukankan      html  css  js  c++  java
  • 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>

    轻松搞定~

  • 相关阅读:
    Windows系统下八大具有高逼格的DOS命令之一【ping】
    NOIP初赛 之 逻辑运算
    动态规划 —— 背包问题一 专项研究学习
    使用前端原生 js,贪吃蛇小游戏
    纯html+css制作3D立方体和动画效果
    css3实现3D动画轮播图
    原生js的弹力小球
    小球的问题
    早期练手:功能相对比较完善的 js 计算器
    自动布局简介
  • 原文地址:https://www.cnblogs.com/lichenwei/p/3893281.html
Copyright © 2011-2022 走看看