mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-23 06:58:19 +02:00
Merge pull request #519 from R0m1k3/1.1
Update file upload handling to use native Node.js FormData
This commit is contained in:
1 file changed
+7
-7
+7
-7
@@ -128,7 +128,6 @@ import { invoiceVerificationService } from "./invoiceVerification";
|
|||||||
import { backupService } from "./backupService";
|
import { backupService } from "./backupService";
|
||||||
import { weatherService } from "./weatherService.js";
|
import { weatherService } from "./weatherService.js";
|
||||||
import fetch from "node-fetch";
|
import fetch from "node-fetch";
|
||||||
import FormData from "form-data";
|
|
||||||
|
|
||||||
export async function registerRoutes(app: Express): Promise<Server> {
|
export async function registerRoutes(app: Express): Promise<Server> {
|
||||||
// Detect environment
|
// Detect environment
|
||||||
@@ -820,7 +819,8 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
|||||||
fieldsCount: Object.keys(formDataFields).length
|
fieldsCount: Object.keys(formDataFields).length
|
||||||
});
|
});
|
||||||
|
|
||||||
// Préparer le FormData pour l'envoi au webhook externe
|
// Utiliser le FormData natif de Node.js (disponible depuis Node 18+)
|
||||||
|
const { FormData, File, Blob } = await import('node:buffer');
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
|
|
||||||
// Ajouter tous les champs du formData
|
// Ajouter tous les champs du formData
|
||||||
@@ -829,10 +829,11 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
|||||||
// Reconstituer le fichier depuis base64
|
// Reconstituer le fichier depuis base64
|
||||||
const fileData = value as { base64: string; filename: string; contentType: string };
|
const fileData = value as { base64: string; filename: string; contentType: string };
|
||||||
const buffer = Buffer.from(fileData.base64, 'base64');
|
const buffer = Buffer.from(fileData.base64, 'base64');
|
||||||
formData.append('file', buffer, {
|
|
||||||
filename: fileData.filename,
|
// Créer un Blob/File natif Node.js
|
||||||
contentType: fileData.contentType
|
const blob = new Blob([buffer], { type: fileData.contentType });
|
||||||
});
|
const file = new File([blob], fileData.filename, { type: fileData.contentType });
|
||||||
|
formData.append('file', file);
|
||||||
} else {
|
} else {
|
||||||
formData.append(key, value as string);
|
formData.append(key, value as string);
|
||||||
}
|
}
|
||||||
@@ -844,7 +845,6 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
|||||||
const response = await fetch(webhookUrl, {
|
const response = await fetch(webhookUrl, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: formData as any,
|
body: formData as any,
|
||||||
headers: formData.getHeaders(),
|
|
||||||
signal: controller.signal
|
signal: controller.signal
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user