diff --git a/src/modules/host/handlers/Activity_Hub/OnBoarding/CreateNewActivity.ts b/src/modules/host/handlers/Activity_Hub/OnBoarding/CreateNewActivity.ts index a119d1a..ec23d26 100644 --- a/src/modules/host/handlers/Activity_Hub/OnBoarding/CreateNewActivity.ts +++ b/src/modules/host/handlers/Activity_Hub/OnBoarding/CreateNewActivity.ts @@ -41,6 +41,25 @@ function normalizeJsonField(fields: any, key: string) { } } +function sanitizeFileName(originalName: string): string { + const extIndex = originalName.lastIndexOf('.'); + const extension = + extIndex !== -1 ? originalName.slice(extIndex).toLowerCase() : ''; + + const baseName = + extIndex !== -1 ? originalName.slice(0, extIndex) : originalName; + + return ( + baseName + .trim() + .replace(/\s+/g, '_') // spaces → underscore + .replace(/[^a-zA-Z0-9_-]/g, '') // remove special chars + .toLowerCase() + + extension + ); +} + + /* -------------------------------- Handler -------------------------------- */ export const handler = safeHandler( @@ -109,7 +128,7 @@ export const handler = safeHandler( files.push({ buffer: Buffer.concat(chunks), mimeType: mimeType || 'application/octet-stream', - fileName: filename || 'unknown', + fileName: sanitizeFileName(filename || 'unknown'), fieldName, }); }