2012-05-21 2 views
1

У меня очень странная проблема! Я использую метод ниже, чтобы извлечь содержимое .zip-файла в новую папку. Он отлично работает на моем компьютере, но не работает на другом! У меня Windows XP на обоих компьютерах, и у них установлен тот же самый wampServer. Все между двумя компьютерами одинаково, кроме их процессора и ОЗУ! Мой компьютер является мощным, и тот, в котором происходит процесс извлечения, - очень медленный компьютер. Вот почему? Как я могу убедиться, что 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 вы используете?

EDIT: Вы использовали функцию 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

Смежные вопросы