diff --git a/formulaires/joindre_document.php b/formulaires/joindre_document.php index 16480be5f6dc2cde48319a6ad5d009c53ef3a684..024d65a202931545947b24fc5d35689d9ac97711 100644 --- a/formulaires/joindre_document.php +++ b/formulaires/joindre_document.php @@ -212,9 +212,11 @@ function formulaires_joindre_document_verifier_dist( ) { list($fichiers, $erreurs, $tmp_zip) = $contenu_zip; if ($fichiers) { + // on passe le md5 du fichier uniquement, on le retrouvera dans zip_to_clean de la session + $token_zip = md5($tmp_zip); $erreurs['message_erreur'] = ''; $erreurs['lister_contenu_archive'] = recuperer_fond("formulaires/inc-lister_archive_jointe", - array('chemin_zip' => $tmp_zip, 'liste_fichiers_zip' => $fichiers, 'erreurs_fichier_zip' => $erreurs)); + array('chemin_zip' => $token_zip, 'liste_fichiers_zip' => $fichiers, 'erreurs_fichier_zip' => $erreurs)); } else { $erreurs['message_erreur'] = _T('medias:erreur_aucun_fichier'); } diff --git a/inc/joindre_document.php b/inc/joindre_document.php index ea3309262a05aa02a0754c9e14c07accf647e2dc..2950beca1326975f8d6d462d35f2b7731c53fbc3 100644 --- a/inc/joindre_document.php +++ b/inc/joindre_document.php @@ -127,7 +127,13 @@ function joindre_trouver_fichier_envoye() { return $files; } - } elseif (_request('joindre_zip') and $path = _request('chemin_zip')) { + } elseif (_request('joindre_zip') and $token_zip = _request('chemin_zip')) { + + $zip_to_clean = (isset($GLOBALS['visiteur_session']['zip_to_clean']) ? unserialize($GLOBALS['visiteur_session']['zip_to_clean']) : array()); + if (!$zip_to_clean or !isset($zip_to_clean[$token_zip]) or !$path = $zip_to_clean[$token_zip]){ + return _T('avis_operation_impossible'); + } + include_spip('inc/documents'); //pour creer_repertoire_documents define('_tmp_zip', $path); define('_tmp_dir', creer_repertoire_documents(md5($path . $GLOBALS['visiteur_session']['id_auteur']))); @@ -239,7 +245,7 @@ function joindre_verifier_zip($files) { 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; + $zip_to_clean[md5($tmp)] = $tmp; session_set('zip_to_clean', serialize($zip_to_clean)); $contenu[] = $tmp; diff --git a/paquet.xml b/paquet.xml index 7ae2341ffc62f90ffadf43f48f95a772023cb801..43fb9b6046992941c89213c90344cd54bdf04f03 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ <paquet prefix="medias" categorie="multimedia" - version="2.14.3" + version="2.14.4" etat="stable" compatibilite="[3.2.0-dev;]" logo="prive/themes/spip/images/portfolio-32.png"