Checkpoint: La route /api/download-bap accepte maintenant un param filename et le met dans Content-Disposition (RFC 5987). Les fonctions downloadBapPdf dans InvoicesBAP.tsx et BapHistory.tsx passent le filename formaté dans l'URL.

This commit is contained in:
Manus
2026-04-12 17:42:15 -04:00
parent d1dda66b9a
commit ba3392b1e4
3 changed files with 13 additions and 6 deletions

View File

@@ -61,8 +61,13 @@ async function startServer() {
res.status(404).json({ error: "Fichier introuvable" });
return;
}
const filename = path.basename(storagePath);
res.setHeader("Content-Disposition", `attachment; filename="${encodeURIComponent(filename)}"`);
// Utiliser le nom de fichier fourni par le client (format Date - Fournisseur - N°Facture.pdf)
const customFilename = req.query.filename as string | undefined;
const fallbackFilename = path.basename(storagePath);
const finalFilename = customFilename ? customFilename : fallbackFilename;
// RFC 5987 : utiliser filename* pour les caractères non-ASCII
const encodedFilename = encodeURIComponent(finalFilename);
res.setHeader("Content-Disposition", `attachment; filename="${encodedFilename}"; filename*=UTF-8''${encodedFilename}`);
res.setHeader("Content-Type", "application/pdf");
res.sendFile(storagePath);
});