2012-05-21 38 views
1

我正面臨一個非常奇怪的問題!我正在使用下面的方法將.zip文件的內容提取到新文件夾中。它在我的電腦上工作得很好,但不適用於另一臺!我在兩臺計算機上都安裝了Windows XP,並且在兩臺計算機上都安裝了相同的wampServer。兩臺電腦之間的一切都是一樣的,除了他們的CPU和RAM!我的電腦是一個功能強大的電腦,提取過程失敗的電腦是一臺非常慢的電腦。那是爲什麼?我如何確保PHP代碼即使在緩慢的環境下也能夠完美運行?PHP extractTo不能在一臺計算機上正確提取文件,但可以在另一臺計算機上工作。

要添加的一件事:要解壓縮的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; 
} 

回答

0

你說它在一個系統中不起作用。你能告訴什麼是不工作的,就像是部分提取的文件?或者文件被破壞?

您是否嘗試過使用不同的目錄。目標目錄是否包含與zip中的目錄同名的文件?那麼我猜目錄創建將無法正常工作。

你還在使用什麼版本的PHP?

編輯:你使用ZipArchive :: getStatusString函數得到任何生成的錯誤?你是否在兩臺機器上使用相同的源文件?

您還可以嘗試在'hardcorevenom'here評論中解釋的步驟。

如果沒有任何效果,您也可以試試這個課程here

+0

我正在使用php v 5.3.8。 apache V2.2.21和zip文件包含一個名爲「INFO」的目錄,裏面有兩個文件「INFO.swf」和「INFO.xml」。他們被提取腐敗!有時swf會提取0kb,而xml根本不會提取,有時反之亦然! – MyFlashLab

相關問題