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;
+}
+