php – PharData extractTo方法无法在linux环境中提取.tar.gz

我想将.tar.gz文件解压缩到特定文件夹中.我使用cURL从MailChimp批处理操作下载.tar.gz文件.我使用下面的代码提取tar文件.

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

我已经为upload文件夹设置了认的apache用户和组权限.

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

PHP版本:5.6.24

我附上了示例.tar.gz文件http://www.simbanic.com/_projects/test/05c902076e.tar.gz

解决方法:

我对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();
}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...