$dir=getcwd();
//如果文件是上传的就加上if($_POST){}这个 代码
if($_POST){
if(is_array($HTTP_POST_FILES)){
$tname = $HTTP_POST_FILES[file2][tmp_name];
$nname = $HTTP_POST_FILES[file2][name];
}
     move_uploaded_file($tname,$nname);
     $obj=new com("wscript.shell");
      //$obj->run("winrar x $dir\\".$nname." ".$dir , 1,true);
      $obj->run("winrar x $dir\\".$nname." ".$dir , 1,true);     unlink($nname);
// shell_exec('taskkill /im WinRAR.exe');
unset($obj);
}
这是上传并自动解压的代码,当文件夹里没有和上传文件相同名的文件时,可以运行,但比如1.rar里有1.jpg,而服务器目录下也有1.jpg时,就卡死,无法上传覆盖
怎么解决?偶初学者,请提供代码

解决方案 »

  1.   

    o+            覆盖已存在文件"winrar x o+ $dir....有关 WinRAR命令行参数 可参考
    http://www.cnblogs.com/pclook/archive/2009/05/06/1450539.html
      

  2.   

    -o[+|-] 设置覆盖模式。可以在解压或更新文件时使用。下列模式可用:          -o           覆盖前询问
                           (默认用于解压文件);          -o+          覆盖所有
                           (默认用于更新的压缩文件);          -o-          跳过已存在的文件。
      

  3.   

    2楼的思路是对了,但其实代码是加多个-号 winrar x -o+ $dir....
    三楼完全对了,所以平分吧