diff --git a/inc/joindre_document.php b/inc/joindre_document.php index 69d9adb37128f684cb1818a4268333c84913a97e..347c7c72459a28f0bea5871177a32bfc87d5db52 100644 --- a/inc/joindre_document.php +++ b/inc/joindre_document.php @@ -214,10 +214,14 @@ function joindre_verifier_zip($files){ // Est-ce qu'on sait le lire ? include_spip('inc/pclzip'); if ($zip - AND $archive = new PclZip($zip) - AND $contenu = joindre_decrire_contenu_zip($archive) - AND rename($zip, $tmp = _DIR_TMP.basename($zip)) - ){ + AND $archive = new PclZip($zip) + AND $contenu = joindre_decrire_contenu_zip($archive) + AND $tmp = sous_repertoire(_DIR_TMP,"zip") + AND rename($zip, $tmp = $tmp.basename($zip)) + ){ + $zip_to_clean = (isset($GLOBALS['visiteur_session']['zip_to_clean'])?unserialize($GLOBALS['visiteur_session']['zip_to_clean']):array()); + $zip_to_clean[] = $tmp; + session_set('zip_to_clean',serialize($zip_to_clean)); $contenu[] = $tmp; return $contenu; } diff --git a/medias_fonctions.php b/medias_fonctions.php index 68882443b5d6ade295b7e1c1050bd0bcd0f00f89..796ee7ee09d57daf97aff8e5a6482cb5e74f922b 100644 --- a/medias_fonctions.php +++ b/medias_fonctions.php @@ -20,6 +20,19 @@ // sécurité if (!defined('_ECRIRE_INC_VERSION')) return; +// nettoyer les zip abandonnes par l'utilisateur +if (isset($GLOBALS['visiteur_session']['zip_to_clean']) + AND test_espace_prive() + AND $_SERVER['REQUEST_METHOD']!=='POST'){ + $zip_to_clean = unserialize($GLOBALS['visiteur_session']['zip_to_clean']); + if ($zip_to_clean){ + foreach ($zip_to_clean as $zip){ + if (@file_exists($zip)) + @unlink($zip); + } + } + session_set('zip_to_clean'); +} /** * Afficher la puce de statut pour les documents diff --git a/paquet.xml b/paquet.xml index 04d3499317eebcbeb5139b835ed345ff6ec9a601..0a40b0391eb7f59b74a2a8b60dc7185f0a5664c1 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ <paquet prefix="medias" categorie="multimedia" - version="2.9.12" + version="2.9.13" etat="stable" compatibilite="[3.0.0;3.1.*]" logo="prive/themes/spip/images/portfolio-32.png"