From f3a7b48dfd5102fbb5332828f1392b7982bc9e41 Mon Sep 17 00:00:00 2001 From: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Sat, 13 Apr 2024 14:27:07 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix(frontend):=20=E6=8B=A1=E5=BC=B5?= =?UTF-8?q?=E5=AD=90=E5=86=85=E3=81=AB=E3=83=89=E3=83=83=E3=83=88=E3=81=8C?= =?UTF-8?q?=E5=90=AB=E3=81=BE=E3=82=8C=E3=82=8B=E3=82=82=E3=81=AE=E3=82=92?= =?UTF-8?q?=E6=AD=A3=E5=B8=B8=E3=81=AB=E3=82=A2=E3=83=83=E3=83=97=E3=83=AD?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/scripts/upload.ts | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/frontend/src/scripts/upload.ts b/packages/frontend/src/scripts/upload.ts index 3e947183c9..8172deca77 100644 --- a/packages/frontend/src/scripts/upload.ts +++ b/packages/frontend/src/scripts/upload.ts @@ -29,6 +29,26 @@ const mimeTypeMap = { 'image/png': 'png', } as const; +// tar.gzなど、拡張子内にドットが含まれるものはここに追加 +const specialExtensions = [ + 'tar.gz', + 'tar.bz2', + 'tar.xz', + 'tar.zst', + 'tar.lz', + 'tar.lz4', + 'tar.sz', + 'tar.z', +] as const; + +function getExtension(filename: string): string { + for (const ext of specialExtensions) { + if (filename.endsWith('.' + ext)) return '.' + ext; + } + const parts = filename.split('.'); + return parts.length > 1 ? '.' + parts.pop()! : ''; +} + export function uploadFile( file: File, folder?: any, @@ -45,7 +65,7 @@ export function uploadFile( const reader = new FileReader(); reader.onload = async (): Promise => { const filename = name ?? file.name ?? 'untitled'; - const extension = filename.split('.').length > 1 ? '.' + filename.split('.').pop() : ''; + const extension = getExtension(filename); const ctx = reactive({ id, From 754bb92a68712d1382d7d23ebbfc87a83bf7fdfb Mon Sep 17 00:00:00 2001 From: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Sat, 13 Apr 2024 19:04:21 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8B=A1=E5=BC=B5=E5=AD=90=E5=86=85?= =?UTF-8?q?=E3=81=AB=E3=83=89=E3=83=83=E3=83=88=E3=82=922=E3=81=A4?= =?UTF-8?q?=E3=81=BE=E3=81=A7=E8=A8=B1=E5=AE=B9=E3=81=99=E3=82=8B=E3=82=82?= =?UTF-8?q?=E3=81=AE=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=99=E3=82=8B=E4=BB=95?= =?UTF-8?q?=E6=A7=98=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/scripts/upload.ts | 32 +++++++++++++++---------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/packages/frontend/src/scripts/upload.ts b/packages/frontend/src/scripts/upload.ts index 8172deca77..9440e526fa 100644 --- a/packages/frontend/src/scripts/upload.ts +++ b/packages/frontend/src/scripts/upload.ts @@ -29,24 +29,30 @@ const mimeTypeMap = { 'image/png': 'png', } as const; -// tar.gzなど、拡張子内にドットが含まれるものはここに追加 +// tar.gzなど、拡張子内にドットを2つまで許容するものはここに追加 const specialExtensions = [ - 'tar.gz', - 'tar.bz2', - 'tar.xz', - 'tar.zst', - 'tar.lz', - 'tar.lz4', - 'tar.sz', - 'tar.z', + 'gz', + 'bz2', + 'xz', + 'zst', + 'lz', + 'lz4', + 'sz', + 'z', + 'zstd', ] as const; function getExtension(filename: string): string { - for (const ext of specialExtensions) { - if (filename.endsWith('.' + ext)) return '.' + ext; - } const parts = filename.split('.'); - return parts.length > 1 ? '.' + parts.pop()! : ''; + + if (parts.length <= 1) return ''; + + for (const ext of specialExtensions) { + if (parts[parts.length - 1] === ext && parts.length > 2) { + return '.' + parts[parts.length - 2] + '.' + parts[parts.length - 1]; + } + } + return '.' + parts.pop(); } export function uploadFile(