diff --git a/CHANGELOG.md b/CHANGELOG.md index fc4d57e77c92b2e85f39c53b38d9c2d6673d74fd..e28c45bc8260b0dea836b5bd46019dac46fa20dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ### Fixed - #123 Faire fonctionner l'analyse des réponses pour une saisie `choix_grille` lorsque les clés sont numériques +- #127 Zipper correctement les fichiers d'un type non autorisé par SPIP ## [5.2.2] - 2022-08-20 diff --git a/inc/formidable_fichiers.php b/inc/formidable_fichiers.php index 7e4f05fd2bab4f79d4b2dcaa024f0b0d790f6920..7500e9057ed580d4aad9409e7d07399be4a3bd05 100644 --- a/inc/formidable_fichiers.php +++ b/inc/formidable_fichiers.php @@ -238,8 +238,8 @@ function formidable_deplacer_fichier_emplacement_definitif($fichier, $nom, $mime return ''; } } else { // si on doit zipper, c'est plus complexe - include_spip('inc/pclzip'); - $zip = new PclZip($chemin_final); + include_spip('inc/archives'); + $zip = new Spip\Archiver\SpipArchiver($chemin_final); // mettre à jour le fichier dans le dossier cvtupload if (!$tmp_dir = tempnam($dossier_champ, 'tmp_upload')) { return ''; @@ -250,14 +250,7 @@ function formidable_deplacer_fichier_emplacement_definitif($fichier, $nom, $mime spip_log("Pb lors de l'enregistrement du fichier $tmp_dir/$nom_dans_zip", 'formidable'._LOG_ERREUR); return ''; } - $zip_final = $zip -> create( - $fichier_tmp, - PCLZIP_OPT_REMOVE_PATH, - $tmp_dir, - PCLZIP_OPT_ADD_PATH, - '' - ); - if (!$zip_final) { + if (!$zip->emballer([$fichier_tmp], $tmp_dir)) { spip_log("Pb lors de l'enregistrement du fichier $fichier", 'formidable'._LOG_ERREUR); return ''; } else {