diff --git a/apps/files/src/actions/downloadAction.ts b/apps/files/src/actions/downloadAction.ts index 32f029d777c..777008c804e 100644 --- a/apps/files/src/actions/downloadAction.ts +++ b/apps/files/src/actions/downloadAction.ts @@ -55,15 +55,15 @@ const downloadNodes = function(nodes: Node[]) { url.searchParams.append('accept', 'zip') } } else { - url = new URL(nodes[0].source) + url = new URL(nodes[0].encodedSource) let base = url.pathname for (const node of nodes.slice(1)) { - base = longestCommonPath(base, (new URL(node.source).pathname)) + base = longestCommonPath(base, (new URL(node.encodedSource).pathname)) } url.pathname = base // The URL contains the path encoded so we need to decode as the query.append will re-encode it - const filenames = nodes.map((node) => decodeURI(node.encodedSource.slice(url.href.length + 1))) + const filenames = nodes.map((node) => decodeURIComponent(node.encodedSource.slice(url.href.length + 1))) url.searchParams.append('accept', 'zip') url.searchParams.append('files', JSON.stringify(filenames)) }