Changeset 62569 in spip-zone


Ignore:
Timestamp:
Jun 15, 2012, 11:19:50 AM (7 years ago)
Author:
rastapopoulos@…
Message:

C'est peut-être plus simple comme ça : on garde en mémoire dans la session SPIP les infos sur les fichiers téléchargés pour un formulaire précis. Du coup on les retrouve bien à chaque étape. On supprime cette variable de session après le traiter().

Il reste à supprimer automatiquement les fichiers temporaires même quand la personne n'est pas allé jusqu'à traiter(). Et pareil pour la variable de session.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/cvt-upload/cvtupload_pipelines.php

    r62557 r62569  
    1616}
    1717
    18 function cvtupload_repertoire_tmp(){
     18function cvtupload_hash(){
    1919        include_spip('inc/session');
    2020        return session_get('hash_env').'_'._request('hash');
     
    4242                include_spip('inc/charsets');
    4343               
     44                $hash = cvtupload_hash();
     45               
    4446                //Si le répertoire temporaire n'existe pas encore, il faut le créer.
    4547                $repertoire_tmp = sous_repertoire(_DIR_TMP.'cvtupload/');
    46                 $repertoire_tmp = sous_repertoire($repertoire_tmp, cvtupload_repertoire_tmp().'/');
     48                $repertoire_tmp = sous_repertoire($repertoire_tmp, $hash.'/');
    4749               
    4850                // On parcourt les champs déclarés comme étant des fichiers
    49                 $infos_fichiers = _request('_infos_fichiers') ? _request('_infos_fichiers') : array();
     51                $infos_fichiers = session_get($hash.'_fichiers') ? session_get($hash.'_fichiers') : array();
    5052                foreach ($champs_fichiers as $champ){
    5153                        if ($_FILES[$champ]){
     
    5860                }
    5961                set_request('_fichiers', $infos_fichiers);
     62                session_set($hash.'_fichiers', $infos_fichiers);
    6063        }
    6164       
     
    101104        // S'il y a des champs fichiers de déclarés
    102105        if ($champs_fichiers = cvtupload_chercher_fichiers($flux['args']['form'], $flux['args']['args'])){
     106                $hash = cvtupload_hash();
    103107                // On supprime le répertoire unique comportant les fichiers du visiteur
    104                 $repertoire = _DIR_TMP.'cvtupload/'.cvtupload_repertoire_tmp().'/';
     108                $repertoire = _DIR_TMP.'cvtupload/'.$hash.'/';
    105109                supprimer_repertoire($repertoire);
     110                session_set($hash.'_fichiers', null);
    106111        }
    107112       
Note: See TracChangeset for help on using the changeset viewer.