我想将 .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'
我已经为上传文件夹设置了默认的 apache 用户和组权限。
sudo chown -R www-data:www-data upload/
PHP 版本:5.6.24
我附上了示例 .tar.gz 文件:http://www.simbanic.com/_projects/test/05c902076e.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();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)