From d6e8290a1cbd293c84da94c378ab84d7b559a3ef Mon Sep 17 00:00:00 2001 From: -LAN- Date: Tue, 22 Oct 2024 17:24:42 +0800 Subject: [PATCH] fix(files): update Content-Length handling for tool and remote files (#9649) --- api/controllers/files/tool_files.py | 6 +++--- api/controllers/web/file.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api/controllers/files/tool_files.py b/api/controllers/files/tool_files.py index 104b7cd9bb..a298701a2f 100644 --- a/api/controllers/files/tool_files.py +++ b/api/controllers/files/tool_files.py @@ -42,10 +42,10 @@ class ToolFilePreviewApi(Resource): stream, mimetype=tool_file.mimetype, direct_passthrough=True, - headers={ - "Content-Length": str(tool_file.size), - }, + headers={}, ) + if tool_file.size > 0: + response.headers["Content-Length"] = str(tool_file.size) if args["as_attachment"]: response.headers["Content-Disposition"] = f"attachment; filename={tool_file.name}" diff --git a/api/controllers/web/file.py b/api/controllers/web/file.py index c029a07707..6eeaa0e3f0 100644 --- a/api/controllers/web/file.py +++ b/api/controllers/web/file.py @@ -46,7 +46,7 @@ class RemoteFileInfoApi(WebApiResource): response = ssrf_proxy.head(decoded_url) return { "file_type": response.headers.get("Content-Type", "application/octet-stream"), - "file_length": int(response.headers.get("Content-Length", 0)), + "file_length": int(response.headers.get("Content-Length", -1)), } except Exception as e: return {"error": str(e)}, 400