Changeset 95501 in spip-zone


Ignore:
Timestamp:
Feb 25, 2016, 10:35:34 PM (4 years ago)
Author:
p@…
Message:

Pouvoir obfusquer les noms des fichiers

Activable via la constante _UPLOADHTML5_OBFUSQUER

Location:
_plugins_/uploadhtml5/trunk
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/uploadhtml5/trunk/paquet.xml

    r95496 r95501  
    22  prefix="uploadhtml5"
    33  categorie="multimedia"
    4   version="1.4.9"
     4  version="1.5"
    55  etat="dev"
    66  compatibilite="[3.0.0;3.1.*]"
  • _plugins_/uploadhtml5/trunk/uploadhtml5_fonctions.php

    r95500 r95501  
    4747        // On ajoute les documents a un objet SPIP.
    4848        $ajouter_documents = charger_fonction('ajouter_documents', 'action');
    49         return $ajouter_documents(
     49        $res = $ajouter_documents(
    5050            $id_document,
    5151            $docs,
     
    5454            $mode
    5555        );
     56
     57        // Obfusquer les noms de fichiers
     58        if (_UPLOADHTML5_OBFUSQUER == true) {
     59                foreach ($res as $key => $id_document) {
     60                        obfusquer_document($id_document);
     61                }
     62        }
     63        return $res;
    5664    }
    5765}
     
    170178    return $img . $libelle;
    171179}
     180
     181/**
     182 * Permet d'obfusquer le nom d'un document SPIP
     183 *
     184 * @param int $id_document
     185 * @access public
     186 * @return string Chemin du nouveau fichier
     187 */
     188function obfusquer_document($id_document) {
     189
     190        // On commence par le fichier
     191        $fichier = sql_getfetsel('fichier', 'spip_documents', 'id_document='.intval($id_document));
     192
     193        $fichier = _DIR_IMG.$fichier;
     194
     195        // Récupérer les informations du fichier
     196        $fichier_info = pathinfo($fichier);
     197
     198        // obfusquer
     199        $nouveau_nom = uniqid();
     200
     201        // Construire le nouveau fichier
     202        $nouveau_fichier = _DIR_IMG.$fichier_info['dirname'].'/'.$nouveau_nom.'.'.$fichier_info['extension'];
     203
     204        renommer_document($fichier, $nouveau_fichier, $id_document);
     205
     206        return $nouveau_fichier;
     207}
     208
     209/**
     210 * Permet de renommer un fichier
     211 * De manière optionnel, si on passe un id_document,
     212 * le champs fichier sera mis à jour avec le nouveau chemin
     213 *
     214 * @param string $ancien_chemin
     215 * @param string $nouveau_chemin
     216 * @param int $id_document
     217 * @access public
     218 */
     219function renommer_document($ancien_chemin, $nouveau_chemin, $id_document = null) {
     220
     221        rename($ancien_chemin, $nouveau_chemin);
     222
     223        // Mettre à jour la base de donnée avec le nouveau chemin au besoin
     224        if (!is_null($id_document)) {
     225                sql_updateq('spip_documents', array('fichier' => $nouveau_chemin), 'id_document='.intval($id_document));
     226        }
     227}
Note: See TracChangeset for help on using the changeset viewer.