Skip to content
Extraits de code Groupes Projets
Valider 4feb4cd7 rédigé par Maïeul's avatar Maïeul
Parcourir les fichiers

Recupération des fichiers par email : passer les args en base64 histoire de ne...

Recupération des fichiers par email : passer les args en base64 histoire de ne pas avoir de surprise en case de fichier avec des noms tordus. Merci @nicod_ pour m'avoir aiguiller sur le problème des noms pour ce bug qui courait depuis longtemps.
parent 37185c1e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -21,7 +21,12 @@ function action_formidable_recuperer_fichier_par_email() {
spip_log("Du coup le resultat de action_auteur est ". _action_auteur("$action-$arg", '', $pass, 'alea_ephemere'), "formidable"._LOG_DEBUG);
if ($hash==_action_auteur("$action-$arg", '', $pass, 'alea_ephemere')
or $hash==_action_auteur("$action-$arg", '', $pass, 'alea_ephemere_ancien')) {
$arg = unserialize($arg);
if (_request('base64')) {
$arg = base64_decode($arg);
$arg = json_decode($arg, true);
} else {//Pour compatibilite historique
$arg = unserialize($arg);
}
// Construire le chemin du fichier, en fonction de ce qu'on reçoit
$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
......
......@@ -522,23 +522,24 @@ function formidable_generer_url_action_recuperer_fichier($id_formulaire, $id_for
**/
function formidable_generer_url_action_recuperer_fichier_email($saisie, $fichier, $options) {
if (isset($options['id_formulaires_reponse'])) {//si reponses enregistrées
$arg = serialize(array(
$arg = json_encode(array(
'formulaire' => strval($options['id_formulaire']),
'reponse' => strval($options['id_formulaires_reponse']),
'fichier' => $fichier,
'saisie' => $saisie
));
} elseif (isset($options['timestamp'])) {//si par timestamp
$arg = serialize(array(
$arg = json_encode(array(
'timestamp' => strval($options['timestamp']),
'fichier' => $fichier,
'saisie' => $saisie
));
}
$arg = base64_encode($arg);
$pass = secret_du_site();
$action = 'formidable_recuperer_fichier_par_email';
$hash = _action_auteur("$action-$arg", '', $pass, 'alea_ephemere');
$url = generer_url_action($action, "arg=$arg&hash=$hash", true, true);
$url = generer_url_action($action, "arg=$arg&hash=$hash&base64=true", true, true);
spip_log("recuperer_fichier_par_email : pour la $saisie et le fichier $fichier avec les options ".print_r($options,true)." le arg est $arg et le hash $hash. Du coup l'url est $url", "formidable"._LOG_DEBUG);
return $url;
}
......
......@@ -571,7 +571,8 @@ function formidable_calculer_taille_fichiers_saisie($saisie) {
function vue_fichier_to_tableau_facteur($vue) {
$tableau_facteur = array();
foreach ($vue as $fichier) {
$arg = unserialize(parametre_url($fichier['url'],'arg'));
$arg = base64_decode(parametre_url($fichier['url'],'arg'));
$arg = json_decode($arg, true);
$tableau_facteur[] = array(
'chemin' => formidable_generer_chemin_fichier($arg),
'nom' => $fichier['fichier'],
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter