С помощью phar
создавать tar.gz
архив возвращает странную ошибку, следующее сообщение об ошибке:
исключение «BadMethodCallException» с сообщением «Невозможно добавить заново
преобразованный фар
«c: /www/dimg/uploads/7e6d3a5e39e43d1351e7069517f11250.tar.gz» в
список phar, phar с таким именем уже существует
c: \ www \ dimg \ upload.php: 163 Трассировка стека:0 c: \ www \ dimg \ upload.php (163): PharData-> compress (4096)
1 {главная}
Фрагмент для создания 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');
На самом деле сжатие генерирует два .tar, а затем tar.gz. Поскольку вы указали .tar.gz в качестве начального вывода, он не может перезаписать его с тем же типом файла.
Я считаю, что проблема в том, что вы пытаетесь создать каталог, который tar.gz
отправляется в. Другими словами, вы говорите, чтобы он собирался в конкретный каталог, а затем говорите, чтобы он строил этот каталог.
Все, что вам нужно сделать, это построить tar.gz
в другом каталоге, чем тот, который вы пытаетесь сжать.