From 926b94282e16d0a1095420c354b7364844fc39a3 Mon Sep 17 00:00:00 2001 From: Knut Ahlers Date: Sun, 1 Oct 2023 17:27:47 +0200 Subject: [PATCH] Implement inner max filesize to 64MiB 64 MiB attachment succeeded, 70 MiB broke Signed-off-by: Knut Ahlers --- src/components/create.vue | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/components/create.vue b/src/components/create.vue index db9ded2..4f378e6 100644 --- a/src/components/create.vue +++ b/src/components/create.vue @@ -116,6 +116,17 @@ const defaultExpiryChoices = [ 5 * 60, // 5 minutes ] +/* + * We define an internal max file-size which cannot get exceeded even + * though the server might accept more: at around 70 MiB the base64 + * encoding broke and nothing works anymore. This might be fixed by + * changing how the base64 implementation works (maybe use a WASM + * object?) or switching to a browser-native implementation in case + * that will appear somewhen in the future but for now we just "fix" + * the issue by disallowing bigger files. + */ +const internalMaxFileSize = 64 * 1024 * 1024 // 64 MiB + const passwordCharset = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' const passwordLength = 20 @@ -146,7 +157,7 @@ export default { }, maxFileSizeExceeded() { - return this.$root.customize.maxAttachmentSizeTotal !== 0 && this.fileSize > this.$root.customize.maxAttachmentSizeTotal + return this.fileSize > internalMaxFileSize || this.$root.customize.maxAttachmentSizeTotal !== 0 && this.fileSize > this.$root.customize.maxAttachmentSizeTotal }, },