From aad7e4dd1c0cacb8318aa0177281c8ad6755d25d Mon Sep 17 00:00:00 2001 From: yjc980121 <3898524+yjc980121@users.noreply.github.com> Date: Mon, 27 Jan 2025 11:33:03 +0800 Subject: [PATCH] fix:Improve MIME type detection for remote URL uploads using python-magic (#12693) --- api/controllers/common/helpers.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/api/controllers/common/helpers.py b/api/controllers/common/helpers.py index 2bae203712..fa42ce4c43 100644 --- a/api/controllers/common/helpers.py +++ b/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