PHP extractTo不能在一台计算机上正确提取文件,但在另一台计算机上工作。

时间:2012-05-21 04:10:35

标签: php wamp ziparchive

我面临一个非常奇怪的问题!我正在使用下面的方法将.zip文件的内容提取到一个新文件夹中。它在我的计算机上工作得非常好,但在另一台计算机上不起作用!我在两台计算机上安装了Windows XP,并在两台计算机上安装了相同的wampServer。除了CPU和RAM之外,两台计算机之间的所有内容都是相同的!我的计算机功能强大,提取过程失败的计算机是一台非常慢的计算机。这是为什么?即使在缓慢的环境中,如何确保PHP代码完美运行?

要添加的一件事:要提取的zip存档包含一个目录和该目录中的一些文件。如果我使用没有目录的zip文件测试进程,它在两台计算机上都可以正常工作。有什么想法吗?!

public function extract($pluginName, $pasteLocation) {

    $zip = new ZipArchive(); 
    $plugin = $pasteLocation.$pluginName.".zip";

    if ($zip->open($plugin) === TRUE) {
        $zip->extractTo($pasteLocation);
        $zip->close();
        unlink($pasteLocation.$pluginName.'.zip');
        $status = "true";
        $msg = "success";
    } else {
        $status = "false";
        $msg = "error";
    }

    $result["status"] = $status;
    $result["msg"] = $msg;
    return $result;
}

1 个答案:

答案 0 :(得分:0)

你说它在一个系统中不起作用。你能说出哪些不起作用,比如,部分提取的文件是什么?或文件是否已损坏?

您是否尝试过使用其他目录?目标目录是否包含与zip目录同名的文件?那我觉得目录创建不起作用。

你还在使用什么版本的php?

编辑:您是否使用ZipArchive :: getStatusString函数来获取任何生成的错误?您是否在两台计算机上使用相同的源存档?

您还可以尝试'hardcorevenom'here注释中解释的程序。

如果没有任何效果,您也可以尝试使用此类here