From f09f3b75ccbaa85e2b0624c3211ec478d6e845c5 Mon Sep 17 00:00:00 2001 From: robbond Date: Mon, 23 Mar 2026 17:01:03 +0000 Subject: [PATCH] TASK22224: fix downloadblob path normalization for prefixed blob names --- pages/api/file/downloadblob.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pages/api/file/downloadblob.js b/pages/api/file/downloadblob.js index e3cc0ff0..3973d93a 100644 --- a/pages/api/file/downloadblob.js +++ b/pages/api/file/downloadblob.js @@ -49,17 +49,24 @@ ApiProxy.get(async (req, res) => { } try { - const bloblocation = - casefolderID + (blobName.indexOf(".json") > 0 ? "/" : "/files/"); + const decodedBlobName = decodeURI(blobName); + const normalizedBlobName = decodedBlobName.startsWith( + casefolderID + "/" + ) + ? decodedBlobName + : casefolderID + + (decodedBlobName.indexOf(".json") > 0 ? "/" : "/files/") + + decodedBlobName; const downloaded = await downloadFile( containerName, - bloblocation + decodeURI(blobName) + normalizedBlobName ); + const responseFileName = decodedBlobName.split("/").pop(); res.setHeader( "content-disposition", - "attachment; filename=" + decodeURI(blobName) + "attachment; filename=" + responseFileName ); return res.status(200).send(downloaded); } catch (error) {