From 1ca6dbcdc88567012286934397991d7756330050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=9E=E6=B3=95=E6=93=8D=E4=BD=9C?= Date: Wed, 30 Apr 2025 22:47:59 +0800 Subject: [PATCH] fix: file name incorrect when download file (#19183) --- api/core/tools/utils/message_transformer.py | 2 +- .../file-uploader-in-chat-input/file-image-item.tsx | 3 ++- .../file-uploader/file-uploader-in-chat-input/file-item.tsx | 5 +++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/api/core/tools/utils/message_transformer.py b/api/core/tools/utils/message_transformer.py index 0dbc9ccbcc..257d96133e 100644 --- a/api/core/tools/utils/message_transformer.py +++ b/api/core/tools/utils/message_transformer.py @@ -60,7 +60,7 @@ class ToolFileMessageTransformer: mimetype = meta.get("mime_type", "application/octet-stream") # get filename from meta - filename = meta.get("file_name", None) + filename = meta.get("filename", None) # if message is str, encode it to bytes if not isinstance(message.message, ToolInvokeMessage.BlobMessage): diff --git a/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-image-item.tsx b/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-image-item.tsx index df2e03db2d..5160348002 100644 --- a/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-image-item.tsx +++ b/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-image-item.tsx @@ -32,6 +32,7 @@ const FileImageItem = ({ }: FileImageItemProps) => { const { id, progress, base64Url, url, name } = file const [imagePreviewUrl, setImagePreviewUrl] = useState('') + const download_url = url ? `${url}&as_attachment=true` : base64Url return ( <> @@ -84,7 +85,7 @@ const FileImageItem = ({ className='absolute bottom-0.5 right-0.5 flex h-6 w-6 items-center justify-center rounded-lg bg-components-actionbar-bg shadow-md' onClick={(e) => { e.stopPropagation() - downloadFile(url || base64Url || '', name) + downloadFile(download_url || '', name) }} > diff --git a/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-item.tsx b/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-item.tsx index a098406160..667bf7cc15 100644 --- a/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-item.tsx +++ b/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-item.tsx @@ -45,6 +45,7 @@ const FileItem = ({ let tmp_preview_url = url || base64Url if (!tmp_preview_url && file?.originalFile) tmp_preview_url = URL.createObjectURL(file.originalFile.slice()).toString() + const download_url = url ? `${url}&as_attachment=true` : base64Url return ( <> @@ -93,13 +94,13 @@ const FileItem = ({ } { - showDownloadAction && tmp_preview_url && ( + showDownloadAction && download_url && ( { e.stopPropagation() - downloadFile(tmp_preview_url || '', name) + downloadFile(download_url || '', name) }} >