2016-08-09 4 views
3

私は特定のフォルダに.tar.gzファイルを展開したいと思います。私はMailChimpバッチ操作から.tar.gzファイルをダウンロードするためにcURLを使用しました。私は以下のコードを使ってtarファイルを抽出しました。PharData extractToメソッドがLinux環境で.tar.gzを抽出できませんでした

$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' 

私は既にアップロードフォルダのデフォルトのApacheユーザーとグループのアクセス許可を設定しています。

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バッチ応答アーカイブと同じ問題を抱えていました。 愚かな解決策が、それは動作しますが...

私は正確に同じ問題を抱えている
$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

完璧に動作します!もう1つのステップは次のとおりです。まず、tar.gzを解凍してから、この解決策に記載されている手順に従います。 –

+0

それは完全に動作します。ありがとう...あなたはエルヴィスです! –

+0

それは私のために完全に動作します!ありがとうございました! –

関連する問題