X-Git-Url: http://git.cyclocoop.org/?p=lhc%2Fweb%2Fclavette_www.git;a=blobdiff_plain;f=www%2Fplugins-dist%2Fmedias%2Finc%2Fjoindre_document.php;h=3cca88caa9cb0738940af332b91fed145d55186e;hp=431cd0142aa9539e986d323e41f96a7f20834208;hb=cc641eb476987612f6d6df1a5417c1c5582a8ab8;hpb=7d84a490677fb716a1fd4df260f8eab35f6a8506 diff --git a/www/plugins-dist/medias/inc/joindre_document.php b/www/plugins-dist/medias/inc/joindre_document.php index 431cd01..3cca88c 100644 --- a/www/plugins-dist/medias/inc/joindre_document.php +++ b/www/plugins-dist/medias/inc/joindre_document.php @@ -3,7 +3,7 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2014 * + * Copyright (c) 2001-2016 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * @@ -114,7 +114,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']))); @@ -214,10 +220,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[md5($tmp)] = $tmp; + session_set('zip_to_clean',serialize($zip_to_clean)); $contenu[] = $tmp; return $contenu; }