Преглед на файлове

fix: Enhance file type detection in HTTP Request node (#11797)

Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: 谭成 <tancheng.sh@chinatelecom.cn>
Co-authored-by: -LAN- <laipz8200@outlook.com>
stardust преди 4 месеца
родител
ревизия
44104797d6
променени са 1 файла, в които са добавени 8 реда и са изтрити 3 реда
  1. 8 3
      api/core/workflow/nodes/http_request/node.py

+ 8 - 3
api/core/workflow/nodes/http_request/node.py

@@ -1,4 +1,5 @@
 import logging
+import mimetypes
 from collections.abc import Mapping, Sequence
 from typing import Any
 
@@ -156,20 +157,24 @@ class HttpRequestNode(BaseNode[HttpRequestNodeData]):
 
     def extract_files(self, url: str, response: Response) -> list[File]:
         """
-        Extract files from response
+        Extract files from response by checking both Content-Type header and URL
         """
         files = []
         is_file = response.is_file
         content_type = response.content_type
         content = response.content
 
-        if is_file and content_type:
+        if is_file:
+            # Guess file extension from URL or Content-Type header
+            filename = url.split("?")[0].split("/")[-1] or ""
+            mime_type = content_type or mimetypes.guess_type(filename)[0] or "application/octet-stream"
+
             tool_file = ToolFileManager.create_file_by_raw(
                 user_id=self.user_id,
                 tenant_id=self.tenant_id,
                 conversation_id=None,
                 file_binary=content,
-                mimetype=content_type,
+                mimetype=mime_type,
             )
 
             mapping = {