diff --git a/web/app/components/workflow/skill/file-tree/artifacts-section.tsx b/web/app/components/workflow/skill/file-tree/artifacts-section.tsx index 2c2100f5fa..4824dc32cd 100644 --- a/web/app/components/workflow/skill/file-tree/artifacts-section.tsx +++ b/web/app/components/workflow/skill/file-tree/artifacts-section.tsx @@ -9,6 +9,7 @@ import FolderSpark from '@/app/components/base/icons/src/vender/workflow/FolderS import { useAppContext } from '@/context/app-context' import { useDownloadSandboxFile, useSandboxFilesTree } from '@/service/use-sandbox-file' import { cn } from '@/utils/classnames' +import { downloadUrl } from '@/utils/download' import ArtifactsTree from './artifacts-tree' type ArtifactsSectionProps = { @@ -33,7 +34,7 @@ const ArtifactsSection = ({ className }: ArtifactsSectionProps) => { const handleDownload = useCallback(async (node: SandboxFileTreeNode) => { try { const ticket = await downloadMutation.mutateAsync(node.path) - window.open(ticket.download_url, '_blank') + downloadUrl({ url: ticket.download_url, fileName: node.name }) } catch (error) { console.error('Download failed:', error) diff --git a/web/app/components/workflow/variable-inspect/artifacts-tab.tsx b/web/app/components/workflow/variable-inspect/artifacts-tab.tsx index bfec17b113..d4de3539f8 100644 --- a/web/app/components/workflow/variable-inspect/artifacts-tab.tsx +++ b/web/app/components/workflow/variable-inspect/artifacts-tab.tsx @@ -16,6 +16,7 @@ import { useAppContext } from '@/context/app-context' import { useDocLink } from '@/context/i18n' import { useDownloadSandboxFile, useSandboxFileDownloadUrl, useSandboxFilesTree } from '@/service/use-sandbox-file' import { cn } from '@/utils/classnames' +import { downloadUrl } from '@/utils/download' import InspectLayout from './inspect-layout' import SplitPanel from './split-panel' @@ -76,7 +77,7 @@ const ArtifactsTab = (headerProps: InspectHeaderProps) => { const handleDownload = useCallback(async (node: SandboxFileTreeNode) => { try { const ticket = await downloadFile(node.path) - window.open(ticket.download_url, '_blank') + downloadUrl({ url: ticket.download_url, fileName: node.name }) } catch (error) { console.error('Download failed:', error)