-
Notifications
You must be signed in to change notification settings - Fork 3
Stockage temporaire des fichiers
Les fichiers en attente (complets ou leurs morceaux en cours de téléversement),
sont stockés selon un répertoire précis, qui dépend du formulaire, de l'auteur,
du champ (name de l'input), du fichier lui-même, dans le répertoire _DIR_TMP/bigupload
.
Chaque fichier ou morceau de fichier téléversé est stocké en attente d'utilisation par Bigup dans le répertoire _DIR_TMP/bigupload
(_DIR_TMP
est par défaut le répertoire tmp/
dans SPIP), dans un chemin précis. Les fichiers complets sont accompagnés d'un second fichier json
décrivant le contenu du fichier et son origine.
- _DIR_TMP/bigupload/parts/{arborescence interne}/file.part0 (file.part1, file.part2, ...)
- _DIR_TMP/bigupload/final/{arborescence interne}/file
- _DIR_TMP/bigupload/final/{arborescence interne}/file.bigup.json
Le fichier json
a connaissance de toutes les informations nécessaires pour comprendre à quel formulaire, auteur, champ un fichier appartient. Cependant par souci de rangement et aussi pour permettre de retrouver facilement les fichiers d'un formulaire / auteur, ceux-ci sont rangés dans une sous-arborescence spécifique :
- {arborescence interne} = {auteur}/{nom du formulaire}/{identifiant du formulaire}/{champ}/{identifiant du fichier}/{nom du fichier sécurisé}
-
auteur :
{id_auteur}.{login}
, sinon{id_auteur}
, sinon0.hash
pour les anonymes, dépendant de la session PHP en cours - nom du formulaire
- identifiant du formulaire : un identifiant qui dépend à la fois du secret du site et de l'identification du formulaire CVT (ou des arguments du formulaires s'il n'y a pas de fonction identifier pour celui-ci.)
-
champ : le name complet du champ, tel que
avatar
ouphotos[polatouches][]
- identifiant du fichier : un identifiant qui dépend du nom et de la taille du fichier d'origine
- nom_du_fichier_securise : un nom un peu plus humain de ce fichier, mais sacrément nettoyé des caractères problématiques (entre autres, aucun point). C'est bien un nom de répertoire.
L'identifiant du fichier permet de distinguer 2 fichiers de même nom utilisés pour le même champ. Une base de cet identifiant est calculé par le javascript de Flow.js d'après le nom du fichier et sa taille.