# Rapport de version — v1.3.2

*STE MOBDIE PRIVÉ — application de gestion — 28 juillet 2026*

L'hypothèse de la v1.3.1 était fausse et la sonde l'a démontrée : sur ce serveur `realpath()` fonctionne, `getRealPath()` renvoie `/tmp/phpfIklYU` et coïncide exactement avec `getPathname()`, `fopen()` réussit sur les deux et la recopie rend 74 406 octets sur 74 406 — le chemin n'était donc pas en cause. Ce qui se dérobe est l'écriture **par flux** elle-même, qui n'aboutit qu'une fois sur treize sans lever la moindre exception ni même produire de fichier vide, tandis que l'écriture par contenu aboutit à tous les coups ; l'échec passait inaperçu parce que l'interface lit le nom, le type et la taille depuis la fiche `.json` et jamais depuis le fichier, si bien que la vignette passait au vert et que l'erreur n'apparaissait qu'à l'enregistrement, quand `DepotPieces::deposer()` demandait enfin sa taille au fichier absent.

En conséquence, `TeleversementLocalAdapter::putFileAs()` écrit désormais le contenu lu en une fois plutôt que de recopier un flux — au-delà de trente mégaoctets il repasse au flux pour ne pas charger la mémoire — puis contrôle systématiquement que le fichier est à destination et compte autant d'octets que ceux **réellement lus** depuis la source, jamais autant que `getSize()` annonce ; si le contrôle échoue l'écriture est retentée une fois par l'autre méthode, et si elle échoue encore une `TeleversementIllisibleException` est levée qui nomme la destination et les deux tailles, de sorte qu'une écriture qui n'aboutit pas ne rende plus la main comme si tout allait bien. S'y ajoutent un refus immédiat au dépôt — posé une fois pour toutes sur `FileUpload`, il écarte la pièce et affiche un message en français dès que le fichier temporaire n'est pas arrivé, au lieu du « Traitement effectué » suivi deux minutes plus tard d'une erreur incompréhensible — et une étape de sonde qui écrit dans `livewire-tmp` par les deux méthodes et relit chacune, mesure qui permettra de constater directement, sur le serveur, laquelle des deux se dérobe.
