diff --git a/action/formidable_recuperer_fichier_par_email.php b/action/formidable_recuperer_fichier_par_email.php index 6a32454253aeea802bc36345a3d263d1c494ef2e..7bd7692a5800069e96f5c9a66261cbee2ce7263a 100644 --- a/action/formidable_recuperer_fichier_par_email.php +++ b/action/formidable_recuperer_fichier_par_email.php @@ -21,23 +21,7 @@ function action_formidable_recuperer_fichier_par_email() { or $hash==_action_auteur("$action-$arg", '', $pass, 'alea_ephemere_ancien')) { $arg = unserialize($arg); // Construire le chemin du fichier, en fonction de ce qu'on reçoit - if (isset($arg['reponse'])) { - $chemin_fichier = _DIR_FICHIERS_FORMIDABLE - .'formulaire_'.$arg['formulaire'] - .'/reponse_'.$arg['reponse'] - .'/'.$arg['saisie'] - .'/'.$arg['fichier']; - } elseif (isset($arg['timestamp'])) { - $chemin_fichier = _DIR_FICHIERS_FORMIDABLE - . 'timestamp/' - . $arg['timestamp'].'/' - . $arg['saisie'].'/' - . $arg['fichier']; - } else { - include_spip('inc/minipres'); - echo minipres(_T('formidable:erreur_fichier_introuvable')); - } - + $chemin_fichier = formidable_generer_chemin_fichier($arg); // Vérifier que le fichier existe, qu'il n'est pas trop vieux, et l'envoyer le cas échéant if (@file_exists($chemin_fichier)) { $f = $arg['fichier']; diff --git a/inc/formidable_fichiers.php b/inc/formidable_fichiers.php index 90e0b99c175a7940e22fcbc02dce6644904a0f47..cdf18e45692430e3bee7bd7d330a1f8514035225 100644 --- a/inc/formidable_fichiers.php +++ b/inc/formidable_fichiers.php @@ -521,3 +521,29 @@ function formidable_generer_url_action_recuperer_fichier_email($saisie, $fichier $url = generer_url_action($action, "arg=$arg&hash=$hash", true, true); return $url; } + +/** Générer le chemin d'un fichier d'après les paramètres passés en argument + * @param array $param, paramètres décrivant le fichiers: nom, timestamp de la réponse ou numéro d'enregistrement de la réponse, id du formulaire, champ formidable + * @return string $chemin; +**/ +function formidable_generer_chemin_fichier($param){ + $chemin_fichier = ''; + if (isset($param['reponse'])) { + $chemin_fichier = _DIR_FICHIERS_FORMIDABLE + .'formulaire_'.$param['formulaire'] + .'/reponse_'.$param['reponse'] + .'/'.$param['saisie'] + .'/'.$param['fichier']; + } elseif (isset($param['timestamp'])) { + $chemin_fichier = _DIR_FICHIERS_FORMIDABLE + . 'timestamp/' + . $param['timestamp'].'/' + . $param['saisie'].'/' + . $param['fichier']; + } else { + include_spip('inc/minipres'); + echo minipres(_T('formidable:erreur_fichier_introuvable')); + } + return $chemin_fichier; +} +