Changeset 92704 in spip-zone


Ignore:
Timestamp:
Nov 6, 2015, 7:09:40 PM (4 years ago)
Author:
p@…
Message:

On upload les documents dans la médiathèque

Mais avec un statut "tmp" pour pouvoir nettoyer au besoin.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/uploadhtml5/trunk/action/send_upload.php

    r92700 r92704  
    99    }
    1010
    11     // On va temporairement écrire les fichiers dans le cache.
    12     include_spip('inc/flock');
     11    // On va uploader les documents avec un mode "tmp"
     12    // Cela permettra plus tard de faire un nettoyage de la base de donnée
     13    include_spip('uploadhtml5_fonctions');
     14    $documents = uploadhtml5_uploader_document('', 0, $_FILES, 'new', 'auto');
     15
     16    // Les document ne sont uploader que 1 par 1
     17    $id_document = intval($documents[0]);
     18
     19    // On force le passage en statut tmp.
     20    // On ne passe pas par l'API pour contourner les autorisations
     21    sql_update('spip_documents', array('statut' => sql_quote('tmp')), 'id_document='.$id_document);
     22
     23    // On stock l'upload en session
    1324    include_spip('inc/session');
    14 
    15     foreach($_FILES as $key => $fichier) {
    16 
    17         $cache_fichier = sous_repertoire(_DIR_CACHE, 'uploadhtml5').$fichier['name'].uniqid();
    18 
    19         $contenu = spip_file_get_contents($fichier['tmp_name']);
    20         ecrire_fichier($cache_fichier, $contenu);
    21 
    22         /**
    23          * On va stocker en session le chemin du fichier
    24          * et les donnée relative à $_FILES. Cela simulera un upload multiple
    25          *
    26          * Cependant, on caviarde le tmp_name pour utiliser le cache
    27          */
    28         $file = session_get('upload');
    29         $file[$key]['name'][] = $fichier['name'];
    30         $file[$key]['type'][] = $fichier['type'];
    31         $file[$key]['tmp_name'][] = $cache_fichier;
    32         $file[$key]['error'][] = $fichier['error'];
    33         $file[$key]['size'][] = $fichier['size'];
    34 
    35         session_set('upload', $file);;
    36     }
     25    $uploads = session_get('upload') ?: array();
     26    $uploads[] = $id_document;
     27    session_set('upload', $uploads);
    3728}
Note: See TracChangeset for help on using the changeset viewer.