Browse Source

Implementation de deballer() pour le format tar

pull/4414/head
Cerdic 2 years ago
parent
commit
21632cd65b
  1. 28
      inc/archives.php

28
inc/archives.php

@ -214,12 +214,12 @@ class SpipArchives
return false;
}
$errors = [];
switch ($this->modeCompression) {
case 'zip':
include_spip('inc/pclzip');
$zip = new \PclZip($this->fichierArchive);
$errors = [];
if (!$fichiers) {
$ok = $zip->extract(
PCLZIP_OPT_PATH,
@ -249,16 +249,34 @@ class SpipArchives
}
}
if (count($errors)) {
$this->codeErreur = 1;
$this->messageErreur = implode("\n", $errors);
return false;
break;
case 'tar':
include_spip('inc/pcltar');
if (!$fichiers){
$ok = PclTarExtract($this->fichierArchive, $destination, $infos['proprietes']['racine'], $this->modeCompression);
if ($ok === 0){
$errors[] = 'deballer() erreur tar ' . PclErrorString() . ' pour paquet: ' . $this->fichierArchive;
}
}
else {
$ok = PclTarExtractList($this->fichierArchive, $fichiers, $destination, $infos['proprietes']['racine'], $this->modeCompression);
if ($ok === 0){
$errors[] = 'deballer() erreur tar ' . PclErrorString() . ' pour paquet: ' . $this->fichierArchive;
}
}
break;
}
if (count($errors)) {
$this->codeErreur = 1;
$this->messageErreur = implode("\n", $errors);
return false;
}
$this->codeErreur = 0;
return true;
}

Loading…
Cancel
Save