使用phar创建tar.gz归档文件会返回一个奇怪的错误,以下是错误消息:
exception ‘BadMethodCallException’ with message ‘Unable to add newly
converted phar
“c:/www/dimg/uploads/7e6d3a5e39e43d1351e7069517f11250.tar.gz” to the
list of phars, a phar with that name already exists’ in
c:\www\dimg\upload.PHP:163 Stack trace:0 c:\www\dimg\upload.PHP(163): PharData->compress(4096)
1 {main}
用于生成Phar档案的片段使用:
$dir_id = md5(microtime() . $_SERVER['REMOTE_ADDR']);
$upload_dir = 'uploads/' . $dir_id;
mkdir($upload_dir, 777);
try {
$a = new PharData($upload_dir . '.tar.gz');
$a->buildFromDirectory($upload_dir);
$a->compress(Phar::GZ);
} catch (Exception $e) {
$error = true;
$err_msg .= '<li>Exception : ' . $e . '</li>';
}
解决方法:
而不是使用
$a = new PharData($upload_dir . '.tar.gz');
使用:
$a = new PharData($upload_dir . '.tar');