1

私は非常に奇妙な問題に直面しています!以下の方法を使用して、.zip ファイルの内容を新しいフォルダーに抽出しています。私のコンピューターでは問題なく動作しますが、別のコンピューターでは動作しません! 両方のコンピューターに Windows XP があり、両方に同じ wampServer をインストールしました。2 台のコンピューター間のすべては、CPU と RAM を除いて同じです。私のコンピューターは強力なコンピューターであり、抽出プロセスが失敗するのは非常に遅いコンピューターです。それが理由ですか?遅い環境でも PHP コードが完全に実行されるようにするにはどうすればよいですか?

追加することの 1 つ: 抽出される zip アーカイブには、1 つのディレクトリとそのディレクトリ内のいくつかのファイルが含まれています。ディレクトリを含まない 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;
}
4

1 に答える 1

0

あなたはそれが1つのシステムでは機能しないと言いました。ファイルが部分的に抽出されているなど、何が機能していないか分かりますか? またはファイルが破損していますか?

別のディレクトリを使用してみましたか。ターゲット ディレクトリに、zip 内のディレクトリと同じ名前のファイルが含まれていますか? 次に、ディレクトリの作成が機能しないと思います。

また、どのバージョンのphpを使用していますか?

編集: ZipArchive::getStatusString 関数を使用して、生成されたエラーを取得しましたか? 両方のマシンで同じソース アーカイブを使用していますか?

ここで「hardcorevenom」のコメントで説明されている手順を試すこともできます。

何も機能しない場合は、ここに示すようにこのクラスを試すこともできます。

于 2012-05-21T04:49:28.147 に答える