/***************************************************************************\\r
* SPIP, Systeme de publication pour l'internet *\r
* *\r
- * Copyright (c) 2001-2014 *\r
+ * Copyright (c) 2001-2016 *\r
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *\r
* *\r
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *\r
return $files;\r
}\r
}\r
- elseif (_request('joindre_zip') AND $path = _request('chemin_zip')){\r
+ elseif (_request('joindre_zip') and $token_zip = _request('chemin_zip')) {\r
+\r
+ $zip_to_clean = (isset($GLOBALS['visiteur_session']['zip_to_clean']) ? unserialize($GLOBALS['visiteur_session']['zip_to_clean']) : array());\r
+ if (!$zip_to_clean or !isset($zip_to_clean[$token_zip]) or !$path = $zip_to_clean[$token_zip]){\r
+ return _T('avis_operation_impossible');\r
+ }\r
+\r
include_spip('inc/documents'); //pour creer_repertoire_documents\r
define('_tmp_zip', $path);\r
define('_tmp_dir', creer_repertoire_documents(md5($path.$GLOBALS['visiteur_session']['id_auteur'])));\r
// Est-ce qu'on sait le lire ?\r
include_spip('inc/pclzip');\r
if ($zip\r
- AND $archive = new PclZip($zip)\r
- AND $contenu = joindre_decrire_contenu_zip($archive)\r
- AND rename($zip, $tmp = _DIR_TMP.basename($zip))\r
- ){\r
+ AND $archive = new PclZip($zip)\r
+ AND $contenu = joindre_decrire_contenu_zip($archive)\r
+ AND $tmp = sous_repertoire(_DIR_TMP,"zip")\r
+ AND rename($zip, $tmp = $tmp.basename($zip))\r
+ ){\r
+ $zip_to_clean = (isset($GLOBALS['visiteur_session']['zip_to_clean'])?unserialize($GLOBALS['visiteur_session']['zip_to_clean']):array());\r
+ $zip_to_clean[md5($tmp)] = $tmp;\r
+ session_set('zip_to_clean',serialize($zip_to_clean));\r
$contenu[] = $tmp;\r
return $contenu;\r
}\r
\r
\r
\r
-// http://doc.spip.org/@joindre_deballes\r
+// http://code.spip.net/@joindre_deballes\r
function joindre_deballer_lister_zip($path,$tmp_dir) {\r
include_spip('inc/pclzip');\r
$archive = new PclZip($path);\r
* @param unknown_type $doc\r
* @return unknown\r
*/\r
-// http://doc.spip.org/@fixer_extension_document\r
+// http://code.spip.net/@fixer_extension_document\r
function fixer_extension_document($doc) {\r
$extension = '';\r
$name = $doc['name'];\r
//\r
// Gestion des fichiers ZIP\r
//\r
-// http://doc.spip.org/@accepte_fichier_upload\r
+// http://code.spip.net/@accepte_fichier_upload\r
\r
function accepte_fichier_upload ($f) {\r
if (!preg_match(",.*__MACOSX/,", $f)\r
\r
# callback pour le deballage d'un zip telecharge\r
# http://www.phpconcept.net/pclzip/man/en/?options-pclzip_cb_pre_extractfunction\r
-// http://doc.spip.org/@callback_deballe_fichier\r
+// http://code.spip.net/@callback_deballe_fichier\r
\r
function callback_deballe_fichier($p_event, &$p_header) {\r
if (accepte_fichier_upload($p_header['filename'])) {\r