Browse Source

fix:Improve MIME type detection for remote URL uploads using python-magic (#12693)

yjc980121 2 months ago
parent
commit
aad7e4dd1c
1 changed files with 8 additions and 0 deletions
  1. 8 0
      api/controllers/common/helpers.py

+ 8 - 0
api/controllers/common/helpers.py

@@ -7,6 +7,7 @@ from typing import Any
 from uuid import uuid4
 
 import httpx
+import magic
 from pydantic import BaseModel
 
 from configs import dify_config
@@ -47,6 +48,13 @@ def guess_file_info_from_response(response: httpx.Response):
         # If guessing fails, use Content-Type from response headers
         mimetype = response.headers.get("Content-Type", "application/octet-stream")
 
+    # Use python-magic to guess MIME type if still unknown or generic
+    if mimetype == "application/octet-stream":
+        try:
+            mimetype = magic.from_buffer(response.content[:1024], mime=True)
+        except magic.MagicException:
+            pass
+
     extension = os.path.splitext(filename)[1]
 
     # Ensure filename has an extension