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) {