2016-08-09 7 views
3

Я хотел бы извлечь файл .tar.gz в конкретную папку. Я использовал cURL для загрузки файла .tar.gz из пакетной операции MailChimp. Я использовал ниже код для извлечения tar-файла.PharData extractTo метод не удалось извлечь .tar.gz в среде linux

$phar = new \PharData('upload/test.tar.gz'); 
    $phar->extractTo('upload/',null, true); 

Он работает над средой Windows. Но в Linux (Ubuntu) я столкнулся с ошибкой при запуске над кодом.

Uncaught exception 'PharException' with message 'Extraction from phar "upload/test.tar" failed: Cannot extract ".", internal error' 

Я уже установил пользовательское и групповое разрешение по умолчанию для папки загрузки.

sudo chown -R www-data:www-data upload/ 

PHP Версия: 5.6.24

меня приложить образец .tar.gz файл: http://www.simbanic.com/_projects/test/05c902076e.tar.gz

+1

У меня точно такой же вопрос: пытается извлечь файл .tar.gz вернулся из операции пакетного MailChimp API 3.0. Вы когда-нибудь находили решение? – Stace

ответ

3

У меня была такая же проблема с архива MailChimp партия ответа. Stupid решение, но это работает ...

$p = new PharData($tarGzArchive, RecursiveDirectoryIterator::SKIP_DOTS); 
$p->convertToData(Phar::ZIP); 

$zip = new ZipArchive; 
$res = $zip->open($createdZipArchive); 
if ($res === TRUE) { 
    $zip->extractTo($destinationPath); 
    $zip->close(); 
} 
+0

Работает отлично! Еще один шаг: Декомпретировать tar.gz, а затем выполнить шаги, указанные в этом решении. –

+0

Он отлично работает. Спасибо ... Ты Элвис! –

+0

Он отлично работает для меня! Спасибо! –