From 448b5404ec937e61ee5c594ac33ad54dd85092b5 Mon Sep 17 00:00:00 2001 From: WittF Date: Sun, 22 Jun 2025 23:27:19 +0800 Subject: [PATCH] fix(EntityRow&FileRow): force file download using anchor tag download attribute --- src/component/Admin/Entity/EntityRow.tsx | 11 +++++++++-- src/component/Admin/File/FileRow.tsx | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/component/Admin/Entity/EntityRow.tsx b/src/component/Admin/Entity/EntityRow.tsx index 296bc37..2e84079 100644 --- a/src/component/Admin/Entity/EntityRow.tsx +++ b/src/component/Admin/Entity/EntityRow.tsx @@ -50,8 +50,15 @@ const EntityRow = ({ dispatch(getEntityUrl(entity?.id ?? 0)) .then((url) => { - // 直接下载文件 - window.location.assign(url); + // 直接下载文件:使用a标签的download属性强制下载 + const link = document.createElement('a'); + link.href = url; + link.download = `entity-${entity?.id}`; + link.style.display = 'none'; + + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); }) .finally(() => { setOpenLoading(false); diff --git a/src/component/Admin/File/FileRow.tsx b/src/component/Admin/File/FileRow.tsx index e623581..8104798 100644 --- a/src/component/Admin/File/FileRow.tsx +++ b/src/component/Admin/File/FileRow.tsx @@ -89,8 +89,15 @@ const FileRow = ({ // 可预览文件:新窗口打开预览,窗口保持显示预览内容 window.open(url, "_blank"); } else { - // 下载文件:当前窗口下载(不跳转页面,直接下载链接) - window.location.assign(url); + // 下载文件:使用a标签的download属性强制下载 + const link = document.createElement('a'); + link.href = url; + link.download = file?.name || `file-${file?.id}`; + link.style.display = 'none'; + + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); } }) .finally(() => {