From 8af2d4e8cf3358426d2f3f0312562e2530f421e9 Mon Sep 17 00:00:00 2001 From: Philipinho <16838612+Philipinho@users.noreply.github.com> Date: Mon, 2 Sep 2024 16:39:07 +0100 Subject: [PATCH] file content-disposition --- apps/server/src/core/attachment/attachment.constants.ts | 4 ++-- apps/server/src/core/attachment/attachment.controller.ts | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/server/src/core/attachment/attachment.constants.ts b/apps/server/src/core/attachment/attachment.constants.ts index e6e75fe7..73c2c305 100644 --- a/apps/server/src/core/attachment/attachment.constants.ts +++ b/apps/server/src/core/attachment/attachment.constants.ts @@ -5,10 +5,10 @@ export enum AttachmentType { File = 'file', } -export const validImageExtensions = ['.jpg', '.png', '.jpeg', 'gif']; +export const validImageExtensions = ['.jpg', '.png', '.jpeg']; export const MAX_AVATAR_SIZE = '5MB'; -export const InlineFileExtensions = [ +export const inlineFileExtensions = [ '.jpg', '.png', '.jpeg', diff --git a/apps/server/src/core/attachment/attachment.controller.ts b/apps/server/src/core/attachment/attachment.controller.ts index 711ab8e0..c06769f0 100644 --- a/apps/server/src/core/attachment/attachment.controller.ts +++ b/apps/server/src/core/attachment/attachment.controller.ts @@ -30,6 +30,7 @@ import { import { getMimeType } from '../../common/helpers'; import { AttachmentType, + inlineFileExtensions, MAX_AVATAR_SIZE, MAX_FILE_SIZE, } from './attachment.constants'; @@ -177,6 +178,14 @@ export class AttachmentController { 'Content-Type': attachment.mimeType, 'Cache-Control': 'public, max-age=3600', }); + + if (!inlineFileExtensions.includes(attachment.fileExt)) { + res.header( + 'Content-Disposition', + `attachment; filename="${attachment.fileName}"`, + ); + } + return res.send(fileStream); } catch (err) { this.logger.error(err);