[spip-dev] CVT et upload de fichiers

Il n'y a actuellement pas de mécanisme générique pour gérer les uploads de fichiers dans un formulaire CVT.

Voilà le problème : un ou des uploads, ça veut dire charger les fichiers sur le serveur. Sauf que CVT il arrête tout à la phase "verifier" quand il y a des erreurs sur certains champs. Donc quand des transferts se sont bien passés mais qu'il y a des erreurs sur d'autres champs : PAF. Par défaut on a tout chargé pour rien. Et ça recharge alors le ou les fichiers (tous les champs file quoi) une nouvelle fois avant d'arriver au "traiter".
C'est débile non ?

Alors je pense que tous ceux qui ont joué avec des champs file dans un CVT ont trouvé des petites combines.

Par exemple moi pour le plugin Contact avancé, j'enregistre tous les fichiers qui sont bien passés dans un dossier temporaire de SPIP. Et lorsque ça bloque au "verifier" (que ce soit pour une erreur ou parce qu'on fait une prévisualisation) ça remplace les champs file par le nom du fichier + un bouton pour annuler ce fichier (pour recommencer un autre envoi).
Ensuite dans traiter() je récupère les fichiers dans le dossier temporaire, je les utilise, puis je n'oublie pas de les supprimer.

Au niveau du code, ça prend de la place, et ça vaut pour tous ceux qui utilisent des champs file + d'autres champs pouvant avoir des erreurs.

Alors est-ce qu'on peut imaginer un mécanisme générique pour gérer ça ?

Tout faire de manière automatique n'est peut-être pas possible. Mais il pourrait y avoir au moins une mini-API, un jeu de fonctions, permettant de :
- récupérer les fichiers dans verifier()
- les placer automatiquement dans un dossier temporaire
- les retrouver automatiquement quand on rappelle dans traiter()
- les supprimer quand on en a plus besoin